response 响应
设置响应行setStatus(int a)
设置响应头 addHeader(Strign key,String value)
设置响应体 getWriter();
重定向 ------ 转发
文件下载
验证码
1 Request对象 了解
获取客户端请求的数据 Request 接口ServletRequest 子接口HttpServletRequest
HttpServletRequest接口实现类 由tomact创建
2 Request对象获取请求行 ****
2.1 获取请求方式 getMethod() get post
getRequestURI() 请求参数的服务器路径
request.getQueryString(); 获取请求行的参数
request.getContextPath() 获取WEB应用名称
String method = request.getMethod();
System.out.println(method);
// 获取请求服务器路径
String requestURI = request.getRequestURI();
StringBuffer requestURL = request.getRequestURL();
System.out.println("uri"+requestURI);
System.out.println("urL"+requestURL);
// 获取请求行的参数
String queryString = request.getQueryString();
System.out.println(queryString);
// 获取WEB应用名称
String contextPath = request.getContextPath();
System.out.println("a"+contextPath);
3 Reuest对象获取请求头 ****
// 获取请求头 getHeader
// String header = request.getHeader("User-Agent");
// String header1 = request.getHeader("Referer");
// System.out.println(header1);
// Enumeration 集合 迭代器
// 集合Iterator haxNext() next()
// 枚举 Enumeration hasMoreElement nextElement()
Enumeration<String> enums = request.getHeaderNames();
System.out.println(enums);
while (enums.hasMoreElements()){
String s = enums.nextElement();
String v = request.getHeader(s);
System.out.println(s+"="+v);
3 .1 解决post提交中文乱码
package cn.lijun.request;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author lijun
* @date 2019/7/9 15:25
*/
@WebServlet(urlPatterns = "/chinese")
public class ChineseServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
// 提交参数有中文乱码
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
System.out.println(username);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
4 Request域对象对象 重点
Request 域对象的作用域 范围小 一次请求
域对象存数据
setAttribute(Strign key,Object value)
getAttribut(key)
removeAttribut(key);
5 转发
package cn.lijun.request;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author lijun
* @date 2019/7/9 15:52
*/
@WebServlet(urlPatterns = "/servlet1")
public class Servlet1 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1 向请求域中存数据
request.setAttribute("9502","我爱java");
//2 转发 获取转发器 参数是地址
RequestDispatcher dis = request.getRequestDispatcher("/servlet2");
//转发器有方法 forward
dis.forward(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
package cn.lijun.request;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author lijun
* @date 2019/7/9 15:55
*/
@WebServlet(urlPatterns = "/servlet2")
public class Servlet2 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("servlet2 "+request.getAttribute("9502"));
response.getWriter().write("servlet2");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
转发和重定向的区别
转发:浏览器一次请求
浏览器地址栏不变
转发是服务器内部行为 浏览器不知道 转发不需要写web应用名
重定向:浏览器两次请求
浏览器地址栏变
重定向可以到外网去
重定向需要写web应用名
6 三层架构 开发模式 MVC 重点
三层架构
表现层 web 层 包含两个层展示层和控制层处理用户请求和响应 用的技术:Servlet
采用MVC设计模式进行设计
业务层 :service 层 处理业务逻辑 编写事物的 spring
持久层: dao 层 数据的增删改查 技术 jdbc dbutils jdbcTemplate MyBatis spring data
、 MVC: Model View Controller 模型视图控制器
model 数据模型 domain(pojo)
View: 视图 html css js
Controller:控制层 servlet 处理请求和响应
7 用户注册 重点
步骤 1 创建数据库
2 创建Module
3 复制页面到web
4 创建包
5 编写功能