博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java web学习
阅读量:4450 次
发布时间:2019-06-07

本文共 6476 字,大约阅读时间需要 21 分钟。

---恢复内容开始---

1.HTTP响应包含三部分:请求行,请求头,请求体。具体结构如图所示

2.状态码

3.contextType的作用是浏览器采用何种方式对响应体进行处理

4.请求转发和重定向:

多个servlet中的跳转有两种方式:

第一种:request.getRequestDispatcher().forward();//请求转发 它是在服务器,即tomcat内部,把请求从第一个servlet转发到第二个servlet.。请求转发是服务器跳转,只会产生一次请求。

 

第二种:response.sendRedirect;//响应重定向 从浏览器重新发送一个新的请求给servlet,会产生两次请求

设置请求自定义属性值 :设置请求属性:request.setAttribute(属性名,属性值)

获取属性值:request.getAttribute(属性名);

 

5.浏览器cookie:cookie是浏览器保存在本地的文本内容,常用来保存用户登录状态,用户资料等小文本.cookie具有时效性,cookie内容会伴随请求发送给tomcat

package com.xiaoqiang.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class FirstServlet */@WebServlet("/Test")public class FirstServlet extends HttpServlet {    private static final long serialVersionUID = 1L;           /**     * @see HttpServlet#HttpServlet()     */    public FirstServlet() {        super();        // TODO Auto-generated constructor stub    }    /**     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)     */    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    /*    String output="

"+"小强

"; response.setContentType("text/xml;charset=utf-8"); response.getWriter().println(output);*/ /*response.sendRedirect("/servlet_study/Test_1");*/ Cookie cookie=new Cookie("user", "xiaoqiang"); response.addCookie(cookie); request.setAttribute("xiaoqiang", "小强"); request.getRequestDispatcher("/Test_1").forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ /*protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }*/}

cookies的创建

//获取cookie中的所有值//伪代码Cookie [] cookies=request.getCookies();for(Cookie coo:cookies)

6.session:session(用户会话)用于保存与“浏览器窗口”对应的数据,session的数据存储在tomcat服务器的内存中,具有时效性。session通过

浏览器cookie的sessionId值提取用户数据。

 session传递的小例子:

package com.xiaoqiang.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;/** * Servlet implementation class FirstServlet */@WebServlet("/Test")public class FirstServlet extends HttpServlet {    private static final long serialVersionUID = 1L;           /**     * @see HttpServlet#HttpServlet()     */    public FirstServlet() {        super();        // TODO Auto-generated constructor stub    }    /**     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)     */    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    /*    String output="

"+"小强

"; response.setContentType("text/xml;charset=utf-8"); response.getWriter().println(output);*/ /*response.sendRedirect("/servlet_study/Test_1");*/ /* Cookie cookie=new Cookie("user", "xiaoqiang"); response.addCookie(cookie);*/ HttpSession session=request.getSession(); session.setAttribute("xiaoqiang", "小强123"); /* request.setAttribute("xiaoqiang", "小强");*/ request.getRequestDispatcher("/Test_1").forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ /*protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }*/}
package com.xiaoqiang.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class SecondServlet */@WebServlet("/Test_1")public class SecondServlet extends HttpServlet {    private static final long serialVersionUID = 1L;           /**     * @see HttpServlet#HttpServlet()     */    public SecondServlet() {        super();        // TODO Auto-generated constructor stub    }    /**     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)     */    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        String output="

"+request.getSession().getAttribute("xiaoqiang")+"

"; response.setContentType("text/html;charset=utf-8"); response.getWriter().println(output); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ /*protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }*/}

 

 

7.servletContext:ServletContext(Servlet上下文对象),是web应用全局变量,一个web应用只会创建一个ServletContext对象,

一个ServletContext随着web应用启动而创建

//伪代码ServletContext servletcontext=request.getServletContext();servletcontext.setAuttribute(K,V);

8.java web 三大作用域对象:HttpServletRequest 请求对象  HttpSession 用户会话对象   ServletContext web应用全局对象

它们的作用域和生命周期是依次递增的。

 

9.解决post请求中的中文乱码:由于tomcat的默认使用字符集ISO-8859-1,属于西欧字符集

 解决字符集乱码的核心是把字符集iso-8859-1转化为UTF-8,servlet中请求与响应都需要设置UTF-8。

可以用request.setCharacterEncoding("UTF-8") 方法用于将请求体中的文字字符集转换为UTF-8。

对于tomcat8.x版本以上的get发送中文请求默认是utf-8的格式,无需转换。

response响应也要设置utf-8的编码

10.web.xml中常用配置

在web.xml中写入标签全局变量参数 <context-parm><parm-name>名称</parm-name><parm-value>值</parm-value> </context-parm>

错误跳转<error-page><error-code>错误编码</error-code><location>路径</locathion></error-page>

 

11.jsp中的九大内置对象

1.request 请求对象 HttpServletRequest

2.response 响应对象 HttpServletRespone

3.session 用户会话 HttpSession

4.application 应用全局变量 ServletContext

5.out 输出对象 PrintWrite

6.page 当前页面对象 this

7.pageContext  页面上下文对象 PageContext

8.config 应用配置对象 ServletConfig

9.exception 应用异常对象 Throwable

转载于:https://www.cnblogs.com/socketqiang/p/10823719.html

你可能感兴趣的文章
最简单的一个java驱动jdbc链接mysql数据库
查看>>
Laravel 加载第三方类库的方法
查看>>
Binary Tree Level Order Traversal
查看>>
wcf契约版本处理与异常处理(随记)
查看>>
hlg1201Zombie’s Treasure Chest---数学问题
查看>>
1.基础数据类型的初识 字符串 bool 整型 if else elif
查看>>
Mybatis源码分析: MapperMethod功能讲解(1)
查看>>
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons.
查看>>
jqGrid的subGrid子表格
查看>>
插件库
查看>>
桶排序
查看>>
the least common multiplier
查看>>
Metro 风格的浏览和无插件的 HTML5
查看>>
LifecycleControl.cs
查看>>
函数式思维: 利用 Either 和 Option 进行函数式错误处理 类型安全的函数式异常...
查看>>
ICEfaces 3.2.0.BETA1 发布
查看>>
Wine 1.5.15 发布
查看>>
Grsync 1.2.2 发布,图形界面的 rsync
查看>>
Chrome 开始允许用户自己监控扩展的活动
查看>>
MySQL for Excel —— 用Excel方式操作MySQL
查看>>