JavaWeb学习(7)

Posted by Csming on 2016-10-24

概要

  • **Servlet的service()方法用于应答请求:**因为每次请求都会调用service()方法
1
2
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {}
  • ServletRequest封装了请求信息,可以从中获取到任何的请求信息
  • ServletResponse封装了相应信息,如果想给用户什么响应,都可以使用该接口的方法实现
  • 这两个接口的实现类都是服务器给予实现的,并且在服务器调用service方法时传入

ServletRequest的方法

  • 获取请求参数
  • String getParameter(String name)根据请求参数的名字,返回参数值.(若请求参数有多个值(例如checkbox),该方法只能过去到第一个值)
  • String[] getParameterValues(String name)根据请求参数的名字获取返回值的数组
  • Enumeration getParameterNames()返回参数名对应的Enumeration对象,类似于ServletConfig(或ServletContext)的getInitParameterNames()方法
  • Map getParameterMap()返回请求参数的键值对key:参数名 values:参数值(String数组类型)
  • 获取请求的URL HttpServletRequest
1
2
HttpServletRequest httpServletRequest = (ServletRequest)request;
String requestURL = httpServletRequest.getRequestURL();
  • 获取请求方式
1
httpServletRequest.getMethod();
  • 查询语句
1
httpServletRequest.getQueryString();
  • 获取WEB应用路径
1
httpServletRequest.getServletPath();
  • 与attribute相关的几个方法
Num 方法
1 Object getAttribute(java.lang.String name)
2 void setAttribute(java.lang.String name, java.lang.Object o)
3 Enumeration getAttributeNames()
4 void removeAttribute(java.lang.String name)

property是javabean中的
有set和get方法
attribute是request中的
getParameter()这个是通过页面提交(method=post)自动传到request中的(url?a=b)
通过getParameter(“a”)可以获得其值b
getAttribute(“a”)这个是需要人为setAttribute(“a”)=b的
其中a为object ,如果获取出来要对其进行操作要强转

  • ServletRequest方法
Num 方法
1 Object,getAttribute(java.lang.String name)
2 void,setAttribute(java.lang.String name, java.lang.Object o)
3 Enumeration,getAttributeNames()
4 int,getContentLength()
5 String,getContentType()
6 ServletInputStream,getInputStream()
7 String,getLocalAddr()
8 java.util.Locale,getLocale()
9 Enumeration,getLocales()
10 String,getLocalName()
11 int,getLocalPort()
12 String,getParameter(java.lang.String name)
13 Map,getParameterMap()
14 Enumeration,getParameterNames()
15 String[],getParameterValues(java.lang.String name)
16 String,getProtocol()
17 BufferedReader,getReader()
18 String,getRealPath(java.lang.String path)
19 String,getRemoteAddr()
20 String,getRemoteHost()
21 int,getRemotePort()
22 RequestDispatcher,getRequestDispatcher(java.lang.String path)
23 String,getScheme()
24 String,getServerName()
25 int,getServerPort()
26 boolean,isSecure()
27 void,removeAttribute(java.lang.String name)
28 void,setCharacterEncoding(java.lang.String env)
  • HttpServletRequest的方法
  • HttpServletRequest是ServletRequest的子接口,针对于HTTP请求所定义,里面包含了大量获取HTTP请求的信息
Num 方法
1 String,getAuthType()
2 String,getContextPath()
3 Cookie[],getCookies()
4 long,getDateHeader(java.lang.String name)
5 String,getHeader(java.lang.String name)
6 Enumeration,getHeaderNames()
7 Enumeration,getHeaders(java.lang.String name)
8 int,getIntHeader(java.lang.String name)
9 String,getMethod()
10 String,getPathInfo()
11 String,getPathTranslated()
12 String,getQueryString()
13 String,getRemoteUser()
14 String,getRequestedSessionId()
15 String,getRequestURI()
16 StringBuffer,getRequestURL()
17 String,getServletPath()
18 HttpSession,getSession()
19 HttpSession,getSession(boolean create)
20 java.security.Principal,getUserPrincipal()
21 boolean,isRequestedSessionIdFromCookie()
22 boolean,isRequestedSessionIdFromUrl()
23 boolean,isRequestedSessionIdFromURL()
24 boolean,isRequestedSessionIdValid()
25 boolean,isUserInRole(java.lang.String role)

ServletResponse常用方法

  • PrintWriter getWriter() 返回PrintWriter对象,其print方法直接打印…
  • setContentType(String type)设置响应的内容类型
  • void sendRedirect(String location)重定向,此方法为HttpServletResponse中定义
  • 尝试

在web.xml文件中设置两个web应用的初始化参数,user,password
定义一个login.html 里面定义两个请求字段,user,password,发送请求到loginServlet
在创建一个LoginServlet,在其中获取请求的user,password
比对其和web.xml文件中定义的请求参数是否一致,若一致,相应hello:xxx,若不一致响应Sorry:xxx

  • ServletResponse方法
Num 方法
1 void,flushBuffer()
2 int,getBufferSize()
3 String,getCharacterEncoding()
4 String,getContentType()
5 Locale,getLocale()
6 ServletOutputStream,getOutputStream()
7 PrintWriter,getWriter()
8 boolean,isCommitted()
9 void,reset()
10 void,resetBuffer()
11 void,setBufferSize(int size)
12 void,setCharacterEncoding(String charset)
13 void,setContentLength(int len)
14 void,setContentType(String type)
15 void,setLocale(Locale loc)