填空:(20分)
1-5
1 $(“选择器”).val() 2 $(“#id名”) 3 Prototype 4 var
5 静态导入 <%@ page include file="文件的URL" %>
动态导入 <jsp:include page="文件的URL">
6-10
6 model view controller 7 Filter 8 5个 9 isELIgnored=”false” 10定义JSP页面中使用的脚本语言
11-15
11 doGet() 12 jqObje[0] 13 $(domObj) 14服务器内部错误 15 conn.preparestatement(sql)
16-20
16 ResultSet 17 application 18 setMaxAge() 19 分钟 20 request.getAttribute(“key”)
选择:(20分 一题一分)
1--5 A B C C C
6---10 B D A B A
11-15 C B B C (15题多选) ABD
(多选)16---20 ACD BC ACD BC BC
判断:(10分 一个题0.5分)
1---5 √ × √ × √
6--10 √ × × √ ×
11--15 × √ √ √ √
16--20 √ × √ × √
四 :(共25分 一个题5分)
1 使用http协议内容,说明get和post方式的区别
Get请求 : 1 参数跟在url后边在地址栏中显示
2 传输的数据量有限
3 传输数据不安全
Post请求: 1 参数既可以写在url后边,也可以在请求体中传参
2 传输的数据量理论上是没有大小限制的
3 传输数据相对安全
2 简述Jsp 指出下面四个作用域的作用范围:
PageContext、Request、Session、Application
PageContext 当前页面
Request一次请求
Session一次会话
Application 单个web应用
3 说出下面几个jsp语法的含义:
<% %> <%-- --%> <%! %> <%= %>
<% %> 代码段
<%-- --%> 注释
<%! %> 声明语句
<%= %> 表达式
4 Ajax技术是一种客户端技术,指出ajax的编程步骤
//1 创建XMLRequestHttp对象 var xhr = new XMLHttpRequest(); //2 method 提交请求的方式 url提交请求的目的url aysnc 是否异步默认异步 var method ="get"; var url = "testAjaxServlet.gzsxt"; var async = true;
//3 监听xmlRequestHttp的状态 xhr.onreadystatechange=function(){ alert(xhr.readyState) //6 数据接收成功,处理结果 if(xhr.readyState==4){ //7 数据接收完成 if(xhr.status==200){ var resmsg = xhr.responseText; document.getElementById("add").innerHTML=resmsg; }else if(xhr.status==500){ alert("服务器内部错误"); }else if(xhr.status==404){ alert("找不到页面"); } }else{ document.getElementById("add").innerHTML="<img src='images/1.gif' />"; } } alert(xhr.readyState) //4 创建连接 xhr.open(method, url, async); //5 发送请求 xhr.send(null);
|
5 简述jsp中的9大内置对象对应servlet中的实例
对象 | 描述 |
request | HttpServletRequest类的实例 |
response | HttpServletResponse类的实例 |
out | JspWriter类的实例,用于把结果输出至网页上 |
session | HttpSession类的实例 |
application | ServletContext类的实例,与应用上下文有关 |
config | ServletConfig类的实例 |
pageContext | PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问 |
page | 类似于Java类中的this关键字 |
Exception | Exception类的对象,代表发生错误的JSP页面中对应的异常对象 |
五
第一题答案 输出内容 (10分)
Java 代码:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<h1>手写Servlet</h1>"); out.flush(); out.close(); } |
Web配置:
<web-app> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>cn.gzsxt.action.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/testServlet</url-pattern> </servlet-mapping> </web-app> |
编码过滤器: (15分)
1 Java代码
public class EncodeFilter implements Filter{
public void destroy() { }
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //1 配置请求和响应的编码 servletRequest.setCharacterEncoding(encode); servletResponse.setCharacterEncoding(encode); //2 调用下一个filter或servlet filterChain.doFilter(servletRequest, servletResponse); } static String encode = ""; public void init(FilterConfig filterConfig) throws ServletException { encode = filterConfig.getInitParameter("encode"); }
}
|
Web.xml中配置
<!-- 配置编码过滤器 --> <filter> <filter-name>encode</filter-name> <filter-class>cn.gzsxt.filter.EncodeFilter</filter-class> <!-- 过滤器初始化参数 --> <init-param> <param-name>encode</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encode</filter-name> <!-- 如果只过滤某个请求 /login/syslogin.jsp 过滤所有的servlet --> <url-pattern>*.gzsxt</url-pattern> </filter-mapping> |
得分点 :
1 实现接口
2 获得encode参数
3 filterChain.doFilter(servletRequest, servletResponse);
4 需要过滤相应的url<url-pattern>*.gzsxt</url-pattern>
上机题:每题10分共20分
Servlet+javabean完成登录功能(10分)
实体类(1分)
public class User { private String name; private String pwd; //省略构造方法和set/get方法 } |
Servlet (每一步2分)
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response); }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1设定编码集 request.setCharacterEncoding("utf-8"); // 2 获得登录用户名和密码 String name = request.getParameter("name"); String pwd = request.getParameter("pwd"); if("gao".equals(name)&&"123".equals(pwd)){ User user = new User(); user.setName(name); user.setPwd(pwd); //3 将对象放到session中 request.getSession().setAttribute("user", user); }else{ //4 登录失败输出提示内容 response.getWriter().println("您输入的用户名或密码有误"); } } } |
Web.xml(1分)
<web-app> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>cn.gzsxt.action.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/loginServlet.gzsxt</url-pattern> </servlet-mapping> </web-app> |
2 题 使用JSTL和EL完成下面要求:(10分)
需要导入标签库 和 处理EL表达式 (2分)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> |
Jsp代码:(每一步2分)
<body> <% List list = new ArrayList(); list.add("aa"); list.add("bb"); list.add("cc"); list.add("dd"); list.add("ee"); list.add("ff"); list.add("GG"); request.setAttribute("list", list); %> <c:forEach var="i" items="${list }" varStatus="status"> <!-- 1 第一个变大写 --> <c:if test="${status.count==1 }"> ${fn:toUpperCase(i)} </c:if> <!-- 2 获得list的长度 --> <c:set var="len" value="${fn:length(list ) }" ></c:set> <!-- 3 如果是最后一个值则小写,如果是非第一个正常输出 --> <c:choose> <c:when test="${status.count== len}"> ${fn:toLowerCase(i)} </c:when> <c:otherwise> <c:if test="${status.count!=1 }"> ${i } </c:if> </c:otherwise> </c:choose> <!--4 每打印5个换行 --> <c:if test="${status.count%5==0 }"> <br/> </c:if> </c:forEach> </body> |