图文详解Java中的servlet,以及servlet中使用到的关键技术

Servlet是Java中实现动态网页的技术:

如果有想学习java的程序员,可来我们的java学习扣qun:79979,2590免费送java的视频教程噢!小编是一名5年java开发经验的全栈工程师,整理了一份适合18年学习的java干货,送给每一位想学的小伙伴,欢迎大家一起学习哦。

一张图搞定Java的servlet,servlet使用中的关键技术

servlet的知识导图


常用对象

一张图搞定Java的servlet,servlet使用中的关键技术

request对象

request表示请求,主要功能是接受客户端发来的请求信息,封装了客户端请求参数,它由webserver生成。

常用方法:

  1. 获取某参数的值:request.getParameter("");

  2. 获取某类参数的值:request.getParameterValues("");

  3. 设置请求信息的编码:request.setCharacterEncoding();

  4. 获取转发对象:request.getRequestDispatcher();

  5. 获取request范围的参数:request.getAttribute();

response对象

response表示响应,主要功能是完成服务器对客户端发来的请求的响应。

常用方法:

  1. 跳转到指定地址页面:response.sendRedirect(“地址”);

  2. 设置响应信息的编码:response.setCharacterEncoding("utf-8");

  3. 向客户端添加cookies:response.addCookie("");

  4. 设置 servlet 动态生成的网页的编码和我那工业的类型:

  5. response.setContentType("text/html;c");

  6. 设置servlet动态生成的网页的编码和网页的类型:response.setContentType("text/html;charset=utf-8");

  7. 页面2秒一刷新:response.setHeader(“refresh”,”2”);

session对象

Session即会话,表示从访问站点开始到离开站点或者关闭浏览器这段时间。

主要用于保存同一用户在同一站点的不同页面操作的信息。

当访问某一个网站时,网站的服务器会分配一个sessionID给当前的浏览器,浏览器将sessionID存储起来,之后再向服务器发送请求时,携带sessionID.服务器根据sessionID判断是不是同一个用户。

HTTPSession 是一个建立在cookies 和URL-rewriting上的高质量的界面。Session的信息保存在服务器端,Session的id保存在客户机的cookie中。事实上,在许多服务器上,如果浏览器支持的话它们就使用cookies,但是如果不支持或废除了的话就自动转化为URL-rewriting,session自动为每个流程提供了方便地存储信息的方法。

Session的销毁只有三种方式:

  • 调用了session.invalidate()方法

  • session 过期(超时)

  • 服务器重新启动

Tomcat 默认session 超时时间为30分钟,设置session 超时有两种方式:

  1. Java代码中设置:session.setMaxInactiveInterval(10); // 单位是秒

  2. 在web.xml配置:

<session-config>

<session-timeout>10</session-timeout>

</session-config>

application对象

当Web服务器启动时,Web服务器会自动创建一个application对象,application对象一旦创建,它将一直存在,直到Web服务器关闭。

一个Web服务器通常有多个Web服务目录 (网站),当Web服务器启动时,它自动为每个Web服务目录都创建一个application对象,这些application对象各自独立,而且和Web服务目录一一对应。

访问同一个网站的客户都共享一个application对象,因此,application对象可以实现多客户间的数据共享。

this.getServletContext()方法来获取整个网站的上下文对象。


作用域

Servlet给我们提供了3种作用域容器

一张图搞定Java的servlet,servlet使用中的关键技术


设置编码

tomcat的默认编码是ISO-8859-1。

通常要求页面的编码为utf-8,数据库的编码也为utf-8。

一张图搞定Java的servlet,servlet使用中的关键技术

一张图搞定Java的servlet,servlet使用中的关键技术

以上三种方法对于post,get提交都可以,但是post提交时,中文可以更简单.对于doPost方法:

一张图搞定Java的servlet,servlet使用中的关键技术


Servlet路径跳转

绝对路径:放之四海而皆准的路径。

相对路径:相对于当前资源的路径。

通过URL访问servlet

JSP页面的URL和web.xml中配置的<url-pattern>相匹配,然后通过<servlet-class>中配置的类全路径去访问对应的servlet。

一张图搞定Java的servlet,servlet使用中的关键技术

一张图搞定Java的servlet,servlet使用中的关键技术

Servlet跳转JSP页面

当前servlet路径是: ServletPathDirection/servlet/HelloServlet.java

目标资源路径:http://localhost:8080/Shop2/index.jsp

重定向:服务器到客户端(根目录指的是不带项目名的根目录,同JSP页面的跳转)

一张图搞定Java的servlet,servlet使用中的关键技术

请求转发:服务器内部跳转(服务器内部,默认把项目名作为根目录,配置tomcat虚拟目录时可以去掉项目名)

一张图搞定Java的servlet,servlet使用中的关键技术


获取初始化参数

在Web.xml中配置Servlet时,可以配置一些初始化参数。而在Servlet中可以通过ServletConfig接口提供的方法来取得这些参数。

一张图搞定Java的servlet,servlet使用中的关键技术

一张图搞定Java的servlet,servlet使用中的关键技术

一张图搞定Java的servlet,servlet使用中的关键技术

异常处理

当一个 Servlet 抛出一个异常时,Web 容器在使用了 exception-type 元素的 web.xml 中搜索与抛出异常类型相匹配的配置。

您必须在 web.xml 中使用 error-page 元素来指定对特定异常 或 HTTP 状态码 作出相应的 Servlet 调用。

一张图搞定Java的servlet,servlet使用中的关键技术

如果您想对所有的异常有一个通用的错误处理程序,那么应该定义下面的 error-page,而不是为每个异常定义单独的 error-page 元素:

一张图搞定Java的servlet,servlet使用中的关键技术

猜你喜欢

转载自blog.csdn.net/qq_43202482/article/details/84300435