无聊的一天啊,好热!
关于HTTP请求的处理
package cn.sevresponse;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HttpSevresponse
*/
@WebServlet(urlPatterns = {"/HttpSevresponse"}, asyncSupported = true,
loadOnStartup = -1) //loadstartup自动加载,值越大,优先级越低
public class HttpSevresponse extends HttpServlet {
private static final long serialVersionUID = 1L;
public HttpSevresponse(){
System.out.println("dui xiang chuangjian"); //第一次访问servlet时创建
}
/**
*有参init, 程序初始化,一定会被TOMCAT调用,不需要覆盖有参的
*/
// @Override
// public void init(ServletConfig config) throws ServletException {
// // TODO Auto-generated method stub
// super.init(config); //创建完servlet对象的时候调用
//
// }
/**
* 无参Init 开发者用来覆盖,书写的地方
*
*/
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
super.init();
}
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
super.service(arg0, arg1);
System.out.println("service"); //每次发出请求时调用
}
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("destroy"); //停止服务器或重新部署web应用时
super.destroy();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
//1.响应行
//1.1修改状态码
//response.setStatus(404);
//404错误页面在web.xml中部署,且指向页面大于1024字节
//response.sendError(404); //修改状态码,+404错误页面
//2.响应头
//response.setHeader(name,value);
response.setHeader("server", "reimu");
//3.实体内容
response.getWriter().write("xxxxx");
//2.1 302重定向
//response.setStatus(302);
//response.setHeader("location", "/day20160620/index.html");
//2.1.1
//response.sendRedirect("/day20160620/index.html");
//2.2 跳转
//response.setHeader("refresh", "3;url=http://www.baidu.com");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
servlet config
package cn.sevresponse;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class servconfig
*/
@WebServlet(urlPatterns={"/servconfig"},initParams={@WebInitParam(name="name",value="reimu")})
public class servconfig extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
//加载servlet 初始化参数
public servconfig() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//获取初始化参数getInitParameter("name")
String name=getInitParameter("name");
response.getWriter().append("Served at: "+name);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
servcontext
package cn.sevresponse;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ServContext
*/
/**
* 1.String getContextPath() 得到当前web应用路径
* 2.String getInitParameter(String name) 得到web应用初始化参数
* 3.void setAttribute(String name,Object object) 域对象有关方法:保存数据,获取数据,共享数据
* Object getAttribute(String name)
* void removeAttribute(String name)
* 4.RequestDispatcher getRequestDispatcher(String path) 转发,类似于302
* 5.String getRealPath(String path) 得到web应用资源文件
* 6.InputStream getResourceAsStream(String path)
*
* @author reimu
*
*/
@WebServlet("/ServContext")
public class ServContext extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ServContext() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
//1.得到servletcontext对象
ServletContext sc= this.getServletContext();
//2.得到web应用路径
System.out.println(sc.getContextPath()); //项目名称
//3.域对象
sc.setAttribute("hello", "world");
//4
System.out.println(sc.getRealPath("/index.html"));
//5.转发,地址栏不改变,只能到站内资源
sc.getRequestDispatcher("/index.html").forward(request, response);
//5.1 302
response.sendRedirect("/index,html");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}