课堂笔记 - java面试题

 

 

填空:(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{

 

@Override

public void destroy() {

}

 

@Override

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 = "";

@Override

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>

 

转载于:https://my.oschina.net/u/4118325/blog/3079218

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值