Java Web程序开发入门--读书笔记(五)

由于是在word上做的笔记,到这上面之后的排版很有些问题,看起来比较杂论,所以将在文章结尾附上word,感谢!!!


第五章

浏览器访问Servlet过程:


HttpServletResponse对象:

         发送状态码相关的方法:

                  setStatus(intstatus)方法:

         该方法用于设置HTTP响应消息的状态码,并生成响应状态行,正常情况下,Web服务器会默认产生一个状态码为200的状态行

         sendError(int sc)方法:

         该方法用于发表表示错误信息的状态码

         response对象中,提供了两个重载的sendError()方法

public void sendError(int code) throws java.io.IOException

public void sendError(int code,String message) throws java.io.IOException

发送响应消息头相关的方法:

方法声明

功能描述

void addHeader(String name,String value)

这两个方法都是用来设置HTTP的响应头字段,其中,参数name用于指定响应头字段的名称,参数value用于指定响应头字段的值。不同的是,addHeader()方法可以增加同名的响应头字段,而setHeader()方法则会覆盖同名的头字段

void setHeader(String name,String value)

void addIntHeader(String name,int value)

这两个方法专门用于设置包含整数值的响应头。避免了使用addHeader()与setHeader()方法时,需要将int类型的设置值转换为String类型的麻烦

void setIntHeader(String name,int value)

void setContentLength(int len)·

该方法用于设置响应消息的实体内容的大小,单位为字节。对于HTTP来说,这个方法就是设置ContentLength响应头字段的值

void setContentType(String type)

该方法用于设置Servlet输出 内容的MIME类型,对于HTTP来说,就是设置ContentType响应头字段的值

void setLocale(Locale loc)

该方法用于设置响应消息的本地化消息。对HTTP来说,就是设置ContentLanguage响应头字段和ContentType头字段中的字符编码部分

void setCharacterEncoding(String charset)

该方法用于设置输出内容使用的字符编码,对HTTP来说,就是设置ContentType头字段中的字符集编码部分

         发送响应消息体相关的方法:

         getOutputSteram()方法:

         getWriter()方法:

PrintServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class PrintServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                 

                  String data = "itcast";

//              OutputStream out = response.getOutputStream();

//              out.write(data.getBytes());

                  PrintWriter out=response.getWriter();

                  out.write(data);

                 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

getOutputStream()和getWriter()方法不可同时使用

HttpServletResponse应用:

         中文输出乱码问题:

         ChineseServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class ChineseServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

//              response.setCharacterEncoding("utf-8");

//              response.setHeader("Content-type","text/html;charset=utf-8");

                  response.setContentType("text/html;charset=utf-8");

                  String data = "中国";

//              OutputStream out = response.getOutputStream();

//              out.write(data.getBytes());

                  PrintWriter out=response.getWriter();

                  out.write(data);

                 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

         网页定时刷新并跳转:

         RefreshServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class RefreshServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

//              response.setHeader("Refresh","2;URL=http://www.itcast.cn");

                  response.setHeader("Refresh","60");

                  response.getWriter().println(new java.util.Date());

                 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

         禁止浏览器缓存页面:

         CacheServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class CacheServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  response.setContentType("text/html;charset=utf-8");

                  response.setDateHeader("Expires",0);

                  response.setHeader("Cache-Control", "no-cache");

                  response.setHeader("Pragma","no-cache");

                  PrintWriter out=response.getWriter();

                  out.println("本次响应的随机数为:"+Math.random());

                  out.println("<form action='NotServlet'"+"method='post'>"+

                                                     "第一个参数:<input type='text' name='p1'/><br>"+

                                                     "第二个参数:<input type='text' name='p2'/></textarea><br>"+

                                                     "<input type='submit' value='提交'>"+

                                                     "</form>");

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

         请求重定向:

         login.html

<!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

    <formaction="/chapter05/LoginServlet"method="post">

        用户名:<inputtype="text"name="name"/><br>

        密  码:<inputtype="text"name="pwd"/><br>

        <inputtype="submit"value="登录"/>

    </form>

</body>

</html>

welcome.html

<!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

    欢迎您,登陆成功!

</body>

</html>

LoginServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class LoginServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  response.setContentType("text/html;charset=utf-8");

                  String username=request.getParameter("name");

                  String password=request.getParameter("pwd");

                  if (("itcast").equals(username)&&("123").equals(password)) {

                          response.sendRedirect("/chapter05/welcome.html");

                  }else{

                          response.sendRedirect("/chapter05/login.html");

                  }

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

HttpServletRequest对象:

         获取请求行信息的相关方法:

        

方法声明

功能描述

String getMethod()

该方法用于获取HTTP请求消息中的请求方式(如GET、POST等)

String getRequestURL()

该方法用于获取请求行中资源名称部分,即位于URL的主机和端口之后、参数部分之前的部分

String getQueryString()

该方法用于获取请求行中的参数部分,也就是资源路径后面的问号(?)以后的所有内容

String getProtocol()

该方法用于获取请求行中的协议名和版本,例如,HTTP1.0或HTTP1.1

String getContextPath()

该方法用于获取请求URL中属于Web应用程序的路径,这个路径以“/”开头,表示相对于整个Web站点的根目录,路径结尾不含“/”。如果请求URL属于Web站点的根目录,那么返回结果为空字符串(“”)

String getPathInfo()

该方法用于获取请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。如果请求URL中没有额外路径信息部分,getPathInfo返回null

String getPathTranslated()

该方法用于获取URL中额外路径信息所对应的资源的真实路径,假设“/controller/one.jsp”中的“/one.jsp”为额外路径信息,getPathTranslated()即为“/one.jsp”所对应的资源文件的真实路径

String getServletPath()

该方法用于获取Servlet的名称或Servlet所映射的路径

RequestLineServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class RequestLineServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

 

                  response.setContentType("text/html;charset=utf-8");

                  PrintWriter out = response.getWriter();

                  out.write("getMethod:" + request.getMethod() + "<br>");

                  out.write("getRequestURL:" + request.getRequestURI() + "<br>");

                  out.write("getQueryString:" + request.getQueryString() + "<br>");

                  out.write("getProtocol:" + request.getProtocol() + "<br>");

                  out.write("getContextPath:" + request.getContextPath() + "<br>");

                  out.write("getPathInfo:" + request.getPathInfo() + "<br>");

                  out.write("getPathTranslated:" + request.getPathTranslated() + "<br>");

                  out.write("getServletPath:" + request.getServletPath() + "<br>");

 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

获取请求消息头的相关方法:

方法申明

功能描述

String getHeader(String name)

该方法用于获取一个指定头字段的值,如果请求消息中没有包含指定的头字段,getHeader()方法返回null;如果请求消息中包含多个指定名称的头字段,getHeader()方法返回其中第一个头字段的值

Enumeration getHeaders(String name)

该方法返回一个Enumeration集合对象,该集合对象由请求消息中出现的某个指定名称的所有头字段值组成。在多数情况下,一个头字段名在请求消息中只出现一次,但有可能会出现多次

Enumeration getHeaderNames()

该方法用于获取一个宝航所有请求头字段的Enumeration对象

int getIntHeader(String name)

该方法用于获取指定名称的头字段,并且将其值转为int类型。需要注意的是,如果指定名称的头字段不存在,返回值为-1;如果获取到的头字段的值不能转为int类型,将发生numberFormatException异常

long getDateHeader(String name)

该方法用于获取指定头字段的值,并将其按GMT时间格式转换成一个代表日期/时间的长整数,这个长整数是自1970年1月1日0点0分0秒算起的以毫秒为单位的时间值

String getContentType()

该方法用于获取ContentType头字段的值,结果为String类型

int getContentLength()

该方法用于获取ContentLength头字段的值,结果为int类型

String getCharacterEncoding()

该方法用于返回请求消息的实体部分的字符集编码,通常是从ContentType头字段中进行提取,结果为String类型

         RequestHeaderServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Enumeration;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class RequestHeadersServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

 

                  response.setContentType("text/html;charset=utf-8");

                  PrintWriter out = response.getWriter();

                  Enumeration headerNames = request.getHeaderNames();

 

                  while (headerNames.hasMoreElements()) {

                          String headerName = (String) headerNames.nextElement();

                          String value = request.getHeader(headerName);

                          out.write(headerName + ":" + value + "<br>");

                  }

 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

         防盗链:

         DownManagerServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class DownManagerServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                 

                  response.setContentType("text/html;charset=utf-8");

                  PrintWriter out=response.getWriter();

                  String referer=request.getHeader("referer");

                  String sitePart="http://"+request.getServerName();

                  System.out.println(sitePart);

                  if (referer!=null&&referer.startsWith(sitePart)) {

                          out.println("dealing download...");

                  }else{

                          RequestDispatcher rd=request.getRequestDispatcher("download.html");

                          rd.forward(request,response);

                  }

 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

download.html

<!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

    <ahref="/chapter05/DownManagerServlet">download</a>

</body>

</html>

         获取请求消息体的相关方法:

         getInputStream方法:

         getReader()方法:

         form.html

<!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

    <formaction="/chapter05/RequestBodyServlet"method="post">

        用户名:<inputtype="text"name="username"/><br>

        密  码:<inputtype="text"name="password"/><br>

        <inputtype="submit"value="提交"/>

    </form>

</body>

</html>

         RequestBodyServlet.java

package cn.itcast.chapter05;

 

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class RequestBodyServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

 

                  response.setContentType("text/html;charset=utf-8");

 

                  // inputstream

                  InputStream in = request.getInputStream();

                  StringBuffer sb = new StringBuffer();

                  byte[] buffer = new byte[1024];

                  int len1;

                  while ((len1 = in.read(buffer)) != -1) {

                          sb.append(new String(buffer, 0, len1));

                  }

                  System.out.println(sb);

 

//              // getReader

//              BufferedReader reader = request.getReader();

//              String len2 = null;

//              String body = "";

//

//              while ((len2 = reader.readLine()) != null) {

//                       body = body + len2;

//              }

//              System.out.println(body);

 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

HttpServletRequest应用:

         获取请求参数:

方法声明

功能描述

String getParameter(String name)

该方法用于获取某个指定名称的参数值,如果请求消息中没有包含指定名称的参数,getParameter方法返回同null;如果指定名称的参数存在但没有设定值,则返回一个空串;如果请求消息中包含多个该制定名称的参数,getParameter(String name)方法返回第一个出现的参数值

String[] getParameterValues(String name)

HTTP请求消息中可以有多个相同名称的参数(通常由一个包含多个同名的字段元素中的FROM表单生成),如果要获得HTTP请求消息中的同一个参数名所对应的所有参数值,那么就应该使用getParameterValues(String name)方法,该方法用于返回一个String类型的数组

Enumeration getParameterNames()

getParameterNames()方法用于返回一个包含请求消息中的所有参数名的Enumeration对象,在此基础上,可以对请求消息中的所有参数进行遍历处理

Map getParameterMap()

getParameterMap()方法用于将请求消息中的所有参数名和值装进一个Map对象中返回

请求参数的中文乱码问题:      

form1.html

<!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

    <formaction="/chapter05/RequestParamServlet"method="post">

        用户名:<inputtype="text"name="username"/><br>

        密  码:<inputtype="text"name="password"/><br>

        爱  好:

        <inputtype="checkbox"name="hobby"value="sing">唱歌

        <inputtype="checkbox"name="hobby"value="dance">跳舞

        <inputtype="checkbox"name="hobby"value="football">足球<br>

        <inputtype="submit"value="提交"/>

    </form>

</body>

</html>

RequestParamsServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class RequestParamServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  request.setCharacterEncoding("utf-8");

                  String name=request.getParameter("username");

                  String pwd=request.getParameter("password");

                  System.out.println(name+","+pwd);

                  String[] hobby=request.getParameterValues("hobby");

                  System.out.println("爱好:");

                  for (int i = 0; i < hobby.length; i++) {

                          System.out.println(hobby[i]+" ");

                  }

                 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

         获取网络连接信息:

方法声明

功能描述

String getRemoteAddr()

该方法用于获取请求客户端的IP地址,其格式类似于“192.168.0.3”

String getRemoteHost()

该方法用于获取请求客户端的完整主机名,其格式类似于“pc1.itcast.cn”。需要注意的是,如果无法解析出客户机的完整主机名,该方法将会返回客户端的IP地址

int getRemotePort()

该方法用于获取请求客户端网络连接的端口号

String getLocalAddr()

该方法用于获取Web服务器上接受当前请求网络连接的IP地址

String getLocalName()

该方法用于获取Web服务器上接受当前网络连接IP所对应的主机名

int getLocalPort()

该方法用于获取Web服务器上接受当前网络连接的端口号

String getServerName()

该方法用于获取当前请求所指向的主机名,即HTTP请求消息中Host头字段所对应的主机名部分

int getServerPost()

该方法用于获取当前请求所连接的服务器端口号,即HTTP请求消息中Host头字段所对应的端口号部分

String getScheme()

该方法用于获取请求的协议名,例如http、https或ftp

StringBuffer getRequestURL()

该方法用于获取客户端发出请求时的完整URL,包括协议、服务器名、端口号、资源路径等信息,但不包括后面的查询参数部分

         RequestNetServlet.java

package cn.itcast.chapter05;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class RequestNetServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

 

                  response.setContentType("text/html;charset=utf-8");

                  PrintWriter out = response.getWriter();

                  out.println("getRemoteAddr:" + request.getRemoteAddr() + "<br>");

                  out.println("getRemoteHost:" + request.getRemoteHost() + "<br>");

                  out.println("getRemotePort:" + request.getRemotePort() + "<br>");

                  out.println("getLocalAddr:" + request.getLocalAddr() + "<br>");

                  out.println("getLocalName:" + request.getLocalName() + "<br>");

                  out.println("getLocalPort:" + request.getLocalPort() + "<br>");

                  out.println("getServerName:" + request.getServerName() + "<br>");

                  out.println("getServerPort:" + request.getServerPort() + "<br>");

                  out.println("getScheme:" + request.getScheme() + "<br>");

                  out.println("getRequestURI:" + request.getRequestURI() + "<br>");

 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

         通过Request对象传递数据:

         setAttribute()方法:

public void setAttribute(java.lang.String name,java.lang.Object o);

getAttribute()方法:

public java.lang.String getAttribute(java.lang.String name);

removeAttribute()方法:

public void removeAttribute(java.lang.String name);

getAttributeNames()方法:

public java.util.Enumeration getAttributeNames();

RequestDispatcher对象的应用:

         RequestDispatcher接口:

         获取RequestDispatcher对象的方法:

getRequestDispatcher(String path)

返回封装了某个路径所指定资源的RequestDispatcher对象。其中,参数path必须以“/”开头,用于表示当前Web应用的根目录。需要注意的是,WEB-INF目录中的内容对RequestDispatcher对象也是可见的,因此,传递给getRequestDispacther(String path)方法的资源可以是WEB-INF目录中的文件

         RequestDispatcher接口的方法:

forward(ServletRequest request,ServletResponse response)

该方法用于将请求从一个Servlet传递给另外的一个Web资源。从Servlet中,可以对请求做一个初步处理,然后通过调用这个方法,将请求传递给其他资源进行响应。需要注意的是,该方法必须在响应提交给 客户端之前被调用,否则将抛出IllegalStateException异常

include(ServletRequest request,ServletResponse response)

该方法用于将其他的资源作为当前响应内容包含进来

请求转发:

RequestForwardServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

 

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class RequestForwardServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

 

                  response.setContentType("text/html;charset=utf-8");

                  request.setAttribute("company", "北京传智播客教育有限公司");

                  RequestDispatcher dispatcher = request

                                   .getRequestDispatcher("/ResultServlet");

                  dispatcher.forward(request, response);

 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

         ResultServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class ResultServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

 

                  response.setContentType("text/html;charset=utf-8");

                  PrintWriter out = response.getWriter();

                  String company = (String) request.getAttribute("company");

                  if (company != null) {

                          out.println("公司名称:" + company + "<br>");

                  }

 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

         请求包含:

IncludingServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class IncludingServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  response.setContentType("text/html;charset=utf-8");

                  PrintWriter out = response.getWriter();

                  RequestDispatcher dispatcher = request

                                   .getRequestDispatcher("/IncludedServlet?p1=abc");

                  out.println("before including" + "<br>");

                  dispatcher.include(request, response);

                  out.println("after including" + "<br>");

 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

         IncludedServlet.java

package cn.itcast.chapter05;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class IncludedServlet extends HttpServlet {

         private static final long serialVersionUID = 1L;

 

         protected void doGet(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

 

                  response.setContentType("text/html;charset=utf-8");

                  response.setCharacterEncoding("utf-8");

                  PrintWriter out = response.getWriter();

                  out.println("中国" + "<br>");

                  out.println("URI:" + request.getRequestURI() + "<br>");

                  out.println("QueryString:" + request.getQueryString() + "<br>");

                  out.println("parameter p1:" + request.getParameter("p1") + "<br>");

 

         }

 

         protected void doPost(HttpServletRequest request,

                          HttpServletResponse response) throws ServletException, IOException {

                  doGet(request, response);

         }

 

}

 

 







word: http://download.csdn.net/detail/xiey94/9700703

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值