jsp文件怎么打开(JSP和Servlet初级知识点总结)

一、jsp九大内置对象 输出输入对象 1.out:用于向客户端、浏览器输出数据。 2.request(HttpservletRequest类):用于接收客户端请求信息。 3.response(HttpServletResponse类):封装了服务...

一、jsp九大内置对象

jsp文件怎么打开(JSP和Servlet初级知识点总结)

输出输入对象

1.out:用于向客户端、浏览器输出数据。

2.request(HttpservletRequest类):用于接收客户端请求信息。

3.response(HttpServletResponse类):封装了服务器的响应,用于响应客户端。

通信控制对象

4.session(HttpSession类):保存会话信息。

5.application:相当于一个全局表量,实现不同用户的信息共享。

6.pageContext:提供对其他八个对象的访问。

servlet对象

7.page(Object类):代表JSP本身,相当于java中的this引用变量。

8.conf(ServletConfig类):封装应用请求的配置信息。

异常对象

9.exception:封装JSP执行过程中发生的异常和错误信息。

二、Servlet生命周期

当有一个servlet请求被Web服务器接收到,服务器先调用init()方法进行初始化。知道servlet对象被销毁,init()方法只会被调用一次。

此后每次用户请求时,Web服务器都会调用service()方法来处理请求。service会检查用户请求方式,选择调用doGet或者doPost等方法。

调用destroy()销毁servlet对象,destroy也只调用一次,最后JVM垃圾回收器进行回收。

三、JSP和servlet的区别与联系

JSP(Java Server Pages):java服务器页面,其根本是简化servlet的设计。

servlet:是java编写的服务端程序,主要功能是交互式地浏览和修改数据,生成动态Web内容。

JSP代码执行前,会被服务端的JSP引擎转换为.java文件,然后由JSP引擎调用Java编译器,将其.java文件编译为.class文件,然后由JVM执行。

servlet本身是.java文件,编译后由JVM执行。

JSP更擅长页面的表示,其中也可以嵌入java代码。而servlet主要是java代码,负责业务逻辑控制。

四、doGet和doPost的区别

form表单中默认是get方式,超链接中也是get方式。

1、get提交的表单数据会存放在URL地址后,可以直接看到,安全性低。post提交的表单数据存放在http协议消息体中,无法直接看到,安全性高。

2、get提交方式数据量长度有限,一般不超过2kb,post提交方式没有大小限制,更适合大规模的数据传输。

3、get方式在用户刷新时不会有任何提示,post会弹出提示框,问用户是否重新提交。

五、JSP四个作用域

1、page:在当前的JSP页面有效,跳转后无效。

2、request:从一个请求被处理到返回响应整个过程有效。数据被转发到其他jsp页面依然有效。

3、session:在当前会话有效,也就是说从一个浏览器开启到关闭都有效。

4、application:相当于全局变量,只要不被手动删除,或关闭web服务器,在任何浏览器中都有效。

六、转发和重定向的区别

1、转发是在服务端行为,客户端并不知道。而重定向是客户端行为。

2、转发的速度快,重定向慢。

3、转发是同一个请求,而重定向是两个不同的请求。

4、转发的URL地址栏不会变,重定向会变成请求的新地址。

5、转发后request域中的信息可访问到,重定向不能。

6、转发可以访问WEB-INF文件夹,重定向不能。

注释:转发和重定向原理。

转发过程:客户首先发送一个请求到服务端,服务端匹配servlet,servlet执行时调用getRequestDispacher()方法,把请求直接转发给指定的test.jsp,整个流程都是在服务端进行的,也都是在同一个请求完成的,servlet和test.jsp共享同一个request。

重定向过程:客户端发送第一个请求,服务端匹配servlet,servlet调用sendRedirect()方法,这个方法是response的方法,服务端返回这个响应,告诉客户端你需要再发送一个请求去访问test.jsp。客户端接收到服务端的这个响应后,就立刻发出第二个新请求,去请求test.jsp。两个请求互不干扰,相互独立,所有之前的request域里的值,重定向的test.jsp都访问不到。

七、session的失效时间设置

1、在servlet中用session.setMaxInactiveInterval(int interval)方法设置失效时间,以秒为单位的。

2、在web.xml里设置:(已分钟为单位)

<session-config>

<session-timeout>30</session-timeout>

</session-config>

3、tomcat的conf文件夹下的web.xml里设置,同上。(已分钟为单位)

八、乱码问题及解决

1、JSP页面中,设置<%@ page language="java" contentType="text/html;

charset=UTF-8" pageEncoding="UTF-8"%>

2、servlet中,request.seCharacterEncoding(“utf-8”);

3、把获取到的字符串,转成byte数组,在转成”utf-8”字符集。例如:

String s = request.getgetParameter("name");

byte[] b = s.getbytes(“iso-8859-1”);

String s2 = new String(b,”utf-8”);

本文到此结束,希望对大家有所帮助呢。

  • 发表于 2023-07-01 19:40
  • 阅读 ( 57 )
  • 分类:互联网

0 条评论

请先 登录 后评论
赵董发
赵董发

673 篇文章

你可能感兴趣的文章

相关问题