jsp,Servlet常见题目

1.jsp内置对象,类型,以及作用

内置对象 类型 简介
1.pageContext javax.servlet.jsp.PageContext JSP页面容器
2.request javax.servlet.http.HttpServletRequest 客户端向服务端发送的请求信息
3.response javax.servlet.http.HttpServletResponse 服务器端向客户端的响应信息
4.session javax.servlet.http.HttpSession 客户端与服务器端的一次会话
5.application javax.servlet.ServletContext 可存放全局变量,实现用户间数据的共享
6.config javax.servlet.ServletConfig 服务器配置信息,可以取得初始化参数
7.out javax.servlet.jsp.JspWriter 向客户端输出内容
8.page java.lang.Object 当前JSP页面本身,类似于Java类中的this关键字
9.exception java.lang.Throwable 当一个页面在运行过程中发生了异常,就产生这个对象
2.静态include和动态include的区别

    一:执行时间上:

    <%@ include file="index.html"%> 是在翻译阶段执行

    <jsp:include page="index.jsp" flush="true" /> 在请求处理阶段执行.

    二:引入内容的不同:

    <%@ include file="index.html"%>

    引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.

    <jsp:include page="index.jsp" flush="true" />引入执行页面或servlet所生成的应答文本,直到输出时才合并

   三:动态包含可带参数,静态包含不能带参数.如(<jsp: include page="included.jsp">放入参数</jsp:include>);

  四:静态include定不会检查所含文件的变化,而动态include会检查

3.jsp,Servlet的区别

1)jsp是html加Java语言构成,servlet是Java语言

(2)jsp位于视图层,servlet位于逻辑层

(3)jsp会被编译为servlet文件

4.session和cookie的区别

 如果web服务器端使用的是session,那么所有的数据都保存在服务器上,客户端每次请求服务器的时候会发送当前会话的sessionid,服务器根据当前sessionid判断相应的用户数据标志,以确定用户是否登录或具有某种权限。由于数据是存储在服务器上面,所以你不能伪造,但是如果你能够获取某个登录用户的 sessionid,用特殊的浏览器伪造该用户的请求也是能够成功的。sessionid是服务器和客户端链接时候随机分配的,一般来说是不会有重复,但如果有大量的并发请求,也不是没有重复的可能性.

5.如果客户在浏览器上禁用了cookie,如何做会话跟踪

我们可以对网页中的链接稍作修改,解决以上问题: 
修改前:

<a href=“maillogin.jsp“> 
修改后: 
<a href=“<%=response.encodeURL(“maillogin.jsp“)%>“> 

6. 在前端输入框如果用户输入的是HTML标记本身,是否有安全问题?如何解决?

html标记转义存储,如<  &lt       >  &gt

7. servlet是否是线程安全的?为什么?

servlet对象可以同时被多个线程访问,但是它的所有方法都是非同步(synchronized)的,没有成员变量,即使多个线程同时访问,因为没有共享数据所以不存在线程安全问题.但是你如果在里边加入成员变量,如i++,那么就可能出现安全问题

8. 乱码问题怎么解决?

a\通过filter,统一为request中的文本转码:

request.setCharacterEncoding(utf-8);

b\修改tomcat的配置

c\jsphtml中的编码相关的地方全部设置为utf-8

d、如果是json返回要设定response.setContentType(application/text;charset=utf-8);


9.  如何实现文件上传?

a、 添加对commons-fileupload的依赖

b、 表单form标签增加enctype属性,值为multipartform标签中定义type=file的表单空间

c、 Servlet中使用fileuploadAPI可以解析出上传的文件List<FileItem>

d、 处理FileItem,可以获得它的输入流,读到内存中进行下一步处理

10 getpost有什么区别?

geturl直接访问,参数附加在url后面;url长度受限;信息不安全;只能传输文本不能传输图象等二进制内容  name=zhangsan&age=10

post:表单post提交;参数隐藏在报文中,参数长度不受限;较为安全;能上传非文本的内容

11.http响应状态码有哪些?分别是什么含义?

1开头的是表示临时响应并需要请求者继续执行操作的状态码

 200 ok

303 权限不足

404 找不到资源

500 服务器内部错误

12.http请求报文和响应报文

请求行

       由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。

      get:GET /search?hl=zh-CN&source=hp&q=domety&aq=f&oq= HTTP/1.1

post:GET /search HTTP/1.1

响应:

HTTP-Version Status-Code Reason-Phrase CRLF

其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。

如:
  • 200 OK:客户端请求成功。
  • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
  • 401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务。
  • 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
  • 500 Internal Server Error:服务器发生不可预期的错误。
  • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值