if>标签用于进行条件判断。
完善以下登录后台代码
ResultSetrs=null;
PreparedStatementpsmt=null;
booleanisLogin=false;
Stringsql="SELECT*FROMuserWHEREu_name=?
ANDu_password=?
";
Connectionconn=JDBCUtil.getConnection();
try{
psmt=conn.prepareStatement(sql);
psmt.setString(1,user.getUname());
psmt.setString(2,user.getUpassword());
rs=psmt.executeQuery();
isLogin=rs.next();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
JDBCUtil.close(conn,psmt,rs);
}
判断题
JSP从本质上讲可以看成是一个servlet对象。
√
表单提交数据时,用name属性标记传送名称,value属性承载传送值。
√
Include动作和Include指令执行的过程是相同的。
×
HTTP协议是一种无状态协议。
√
JDBC用于实现Java与数据库的交互,但是不可以在jsp中使用。
×
forward动作可以把当前网页重新导向另外的一个服务器。
×
超链接不可以传递参数。
×
简答题
简述JSP四种作用域的生命周期和可访问性?
页面域(pageContex),页面域的生命周期是指页面执行期间。
存储在页面域的对象只对于它所在页面是可访问的。
请求域(request),请求域的生命周期是指一次请求过程。
存储在请求域中的对象只有在此次请求过程中才可以被访问。
会话域(session),会话域的生命周期是指某个客户端与服务器所连接的时间;客户端在第一次访问服务器时创建会话,在关闭浏览器或主动退出后,会话结束。
存储在会话域中的对象在整个会话期间(可能包含多次请求)都可以被访问。
应用域(application),应用域的生命周期是指从服务器开始执行服务到服务器关闭为止,是四个作用域中时间最长的。
存储在应用域中的对象在整个应用程序运行期间可以被所有JSP和Servlet共享访问。
简述转发(forword)与重定向(sendRedirect)的区别?
1)转发只能将请求转发给同一个Web应用中的组件;而重定向不仅可以重定向到当前应用程序中的其他资源,还可以重定向到其他站点的资源;
2)重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变;而转发过程结束后,浏览器地址栏保持初始的URL地址不变;
3)重定向对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求;转发在服务器端内部将请求转发给另外一个资源,浏览器并不知道在服务器程序内部发生了转发行为;
4)转发调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;而重定向调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。
谈谈你对MVC分层开发模式的理解?
MVC模式包含:
模型层(Model)、视图层(View)、控制层(Controller)三个层级。
1)模型层主要负责封装数据和业务操作。
包括对用户请求的数据和数据库查询的数据进行封装,以及对业务处理逻辑进行封装。
2)视图层主要指与用户交互的界面,如:
html,jsp等。
这层主要用于让用户输入数据和显示数据处理后的结果。
3)控制层主要的工作就是控制整个系统处理的流程,其角色通常是介于视图层和模型层之间,进行数据传递和流程转向。
4)控制层将用户请求数据和业务处理逻辑交给相应的模型,视图层从模型中获取数据,并跟随模型层数据的更新而更新。
开发人员在后期对项目的业务逻辑维护时,只需要对模型层做更新、变动,而不需要牵扯到视图层,这样一来,即可将网页设计和程序处理完整的分离,又可使日后的维护更具弹性。
简述include指令元素与include动作元素的相同点与不同点?
答:
共同点:
两者的作用都是在一个JSP中引入其他的页面,实现页面的复用。
不同点:
对包含文件的处理方式和处理时间不同。
include指令元素(静态引入),是在翻译阶段就引入所包含的文件,被处理的文件在逻辑和语法上依赖于当前JSP页面,其优点是页面的执行速度快。
include动作元素(动态引入),是在JSP页面运行时才会引入该文件,被包含的文件在逻辑和语法上独立于当前JSP页面,其优点是可以使用子元素更加灵活地处理所需要的文件,缺点是执行速度要慢一些。
简述JSP的运行原理(也可画图说明)。
答案一:
(画图说明)
答案二:
(文字说明)
JSP引擎首先查找该请求的jsp文件是否存在,若存在,则判断该文件是否修改或首次调用;若不存在,则返回报错信息,
被修改过的或首次调用的JSP文件,JSP引擎先将该JSP文件转换成一个Java源文件(Servlet),然后再把该Java源文件编译成相应的class字节码文件。
执行class字节码文件,并将处理的结果返回给Web服务器,再返回给客户端浏览器进行显示。
编写一个动态显示用户列表的页面。
参考内容如下:
用户ID
用户名
状态
操作
1
admin
正常
修改|删除
2
zhangsan
正常
修改|删除
3
lisi
不可用
修改|删除
已知的信息为:
后台已通过request对象将用户(User.java)列表信息传至前台,传值的参数名称为“userList”,其中User对象的属性包含:
id、name、status;且page指令已导入相关包和类。
要求:
1)使用table布局实现截图中所有内容(无需写css样式、js脚本);
2)列表内容必须使用JSP脚本形式实现。
3)列表内容必须使用JSTL标签+EL表达式实现。
答:
<%ListuserList=(List)request.getAttribute("userList");%>
用户ID | 用户名 | 状态 | 操作 |
---|
<%for(Useru:
userList){%>
<%=u.getId()%> | <%=u.getName()%> | <%=u.getStatus()==1? "正常": "不可用"%> | 修改 删除 |
<%}%>