servlet基础知识。response.sendRedirect(url);
request.getRequestDispatcher(“deal.jsp”).forward(request, response);
HttpServletRequest方法
获取post请求提交的数据方法:
String request.getParameter(“表单元素名”);
//获取用户在表单输入的数据(如:用户名,密码等);其表单元素名在表单中只对应一个输入; 如表单元素名对应多个表单中元素,用此方法则只能获取第一个输入;
String[] request.getParameterValues(“表单元素名”);
//获取用户在表单输入的数据(如:爱好 等);其中表单元素名在表单中对应多个元素;
String[] sah=request.getParameterValues(“sah”);
for(int i=0;i
其它方法:
String request.getRemoteAddr() //获取客户端IP
String request.getScheme() //获取协议名
String request.getServerName() //获取ip或机器名或域名
String request.getServerPort() //获取端口号
String request.getContextPath() //获取上文路径名
request.setCharacterEncoding(arg0) //设置request对象的数据字符集
Servlet相关类
请求: HttpServletRequest
响应: HttpServletResponse
Servlet配置相关: ServletConfig
Servlet异常类: ServletException
会话跟踪: HttpSession
Servlet上下文: ServletContext
请求转发器: RequestDispatcher
Cookie: Cookie
HttpServletRequest(请求类)
getScheme() //获取协议名
getServerName() //获取ip或机器名或域名
getServerPort() //获取端口号
getContextPath() //获取上文路径名
getSession() //获取通信会话HttpSession对象
getQueryString() //获取请求字符串
getRemoteHost() //获取客户端主机
getRemoteAddr() //获取客户端IP
getRequestDispatcher() //获取请求转发对象,注意参数一定要以“/”开头
getCookies() //获取客户端发送来的Cookie对象数组
getServletPath() //获取Servlet对应的路径
setCharacterEncoding(arg0) //设置request对象的数据字符集
HttpServletResponse(响应类)
setContentType(arg0)
是设置JSP页面的显示方式,如’text/html’,
‘text/html; charset=gb2312’ 等
setCharacterEncoding(arg0)
设置页面的编码方式:比如gb2312, gbk, big5, 还有UTF-8等
addCookie(Cookie)
往客户端添加一个Cookie
sendRedirect(String)
重定向请求
response.setHeader(name,contect);
设置html头head。
ServletConfig(Servlet配置类)
getInitParameter(String) //获取Servlet配置的初始参数
getInitParameterNames() //获取Servlet配置的初始参数名
getServletContext() //获取上下文环境
重定向
HttpServletResponse: sendRedirect(String url);
重定向相当于在客户端浏览器地址栏中输入新地址,发送新请求; 也就是说重定向发生在客户端。
地址栏发生变化; 两个web组件间不共享request。
请求转发
RequestDispatcher.forword(HttpServletRequest, HttpServletResponse);
请求转发 发生在服务器端; 一个web组件(如:servlet)接收到一个请求后,自身不做处理,而是转发后另一个web组件(如:servlet)处理; 在服务端完成;
客户端地址栏地址不发生变化;两个web组件间共享request。
请求转发与重定相比: 请求转发相当于只是一个请求;效率更高。
包含
RequestDispatcher. include(HttpServletRequest, HttpServletResponse);
包含是指一个web组件将另一个web组件的结果插入到包含语句处; 实现组件内容合并。两个web组件间共享request。
数据作用域(request)
(HttpServletRequest) 客服端发送一个请求到服务端时产生,服务端处理完这个请求时结束。
相关方法:
public void setAttribute(String var, Object obj);
var 作用域变量名; obj 作用域变量对应的值;
public Object getAttribute(String var);
var 作用域变量名;
Public void removeAttribute(String var);
var 作用域变量名;
数据作用域(session)
(HttpSession) session产生后在session的有效期内有效
每个客服端独享自己一个session对象
相关方法:
get/set/removeAttribute() //操作属性的方法
getCreateTime() //毫秒,以1970-01-01为起点获取Session创建时间;
getLastAccessedTime(); //(单位:毫秒) 获取最后一次访问的时间;
setMaxInactiveInterval(-1); //(单位:秒) 设置超时时间;
getMaxInactiveInterval(); //(单位:秒) 获取超时时间;
isNew(); //判断是否是新创建的;
invalidate(); //注销Session 让Session对象与用户断开;
getServletContext(); //获取上下文对象;
数据作用域(application)
(ServletContext) application用来存储和获取当前应用内的变量;
对所有客服端共享; web应用加载时启动时候产生web应用关闭时消亡
可以理解成Servlet容器环境信息构成了一个ServletContext
相关方法
Set/get/removeAttribute(); //操作作用域的变量;
getRequestDispatcher(String) //获取转发器;
getRealPath(String) //获取绝对路径;
Cookie是什么及作用
Cookie是服务器端或javascript用于维护客户端的一种方式;Cookie是驻留在客户端的一个文本文件;
作用:
在客户端保存用户相关信息
Cookie相关操作
通过HttpServletRequest对象获取客户端的Cookie信息 : getCookies()
通过HttpServletResponse对象往客户端添加Cookie信息 : addCookie(Cookie)
Cookie类相关方法:
set/getName()
set/getValue()
set/getMaxAge() 失效时间
set/getPath() 适用的路径
set/getDomain() 适用的域名
写入Cookie
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Cookie cookie1=new Cookie(“login_name”,”admin”);
cookie1.setMaxAge(60*60*24*360);
Cookie cookie2=new Cookie(“login_pwd”,”123456″);
cookie2.setMaxAge(60*60*24*360);
Cookie cookie3=new Cookie(“login_sex”,java.net.URLEncoder.encode(“男”,“gb2312”)); //中文要转编码.
cookie3.setMaxAge(60*60*24*360);
response.addCookie(cookie1);
response.addCookie(cookie2);
response.addCookie(cookie3);
}
读取Cookie
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Cookie[] cookies = request.getCookies();
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
out.println(““);
out.println(”
out.println(” “);
for (int i = 0; i < cookies.length; i++) {
out.println(cookies[i].getName() + " = ");
out.println(cookies[i].getValue());
out.println("
“);
}
out.println(” “);
out.println(““);
out.flush();
out.close();
}