servlet基础知识

Servlet

Servlet是sun公司提供的一门用于开发动态web资源的技术。
  Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:
  1、编写一个Java类,继承servlet接口。HttpServlet
  2、把开发好的Java类部署到web服务器中。
按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet
用户可以通过浏览器的URI访问到的一个Java小程序
单例多线程

创建web项目 Test_Servlet

第一个Servlet

  1. 写一个Servlet类
    servlet基础知识
    2.2. 配置web.xml文件
    servlet基础知识
    servlet基础知识

//处理请求乱码
req.setCharacterEncoding(“utf-8”);
//处理响应乱码
resp.setContentType(“text/html;charset=utf-8”);

web项目的引入jar方式
1. 复制jar到项目\WebContent\WEB-INF\lib 下
2. Add to Build Path (若jar包没有自动出现)

servlet基础知识

进一步了解Servlet
1. 转发 携带数据
1.1 地址栏不变;
1.2 服务器内部跳转,浏览器不知道
1.3 公用一个request,所以可以在request作用域中存储数据
1.4 A接到用户请求,帮助用户找到B
1.5 只能跳转到当前项目下
1.6 代码实现:req.getRequestDispatcher(URI).forward(req, resp);

servlet基础知识

  1. 重定向 不携带数据
    2.1 地址栏改变
    2.2 浏览器发送新的请求
    2.3 不共享一个request
    2.4 A接到用户的请求,告诉用户,你去找B
    2.5 可以到跳转到其它项目下
    2.6 代码实现:resp.sendRedirect(URI);
    servlet基础知识
    小技巧
    如果需要传递数据 就使用转发
    如果不需要传递数据,可以使用重定向

  2. request 转发
    获取前端数据: req.getParameter(“username”)
    设置数据到request作用域: req.setAttribute(key , Value);
    前台EL表达式取值:${requestScope.Key}
    转发:req.getRequestDispatcher(URI).forward(req, resp);
    内部跳转,URI只能当前项目下,故不需要加项目名

  3. response 重定向
    重定向:resp.sendRedirect(URI);
    可以跳转到外部项目,URI前需要加项目名
    获取当前项目名:req.getContextPath()