一、Tomcat下載和安裝
1、首先去官網(wǎng)下載Tomcat的zip包;
鏈接:http://tomcat.apache.org/2、通過server,添加對應(yīng)版本的Tomcat,選則custom(找到下載的包的路徑)
二、Servlet訪問路徑配置
servlet:
路徑問題:
a.通過插件@WebServlet("/servlet")
b.通過web.xml里面配置
如果兩個都配置了,兩個路徑都可以訪問
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
metadata-complete="false"
version="3.0">
<!-- metadata-complete 是否掃描插件的注解, false:掃描 true:不掃描 -->
<servlet>
<servlet-name>wtx</servlet-name>
<servlet-class>com.wtx.servlet.FirstSevlet</servlet-class>
<!--啟動優(yōu)先級,加上這句話服務(wù)器啟動就會執(zhí)行-->
<load-on-startup>4</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>wtx</servlet-name>
<url-pattern>/first</url-pattern>
</servlet-mapping>
servlet訪問靜態(tài)資源
web.xml里面找url-patten沒有缺省的-->全局的web.xml里面找缺省的("/")-->default-->去工程根目錄找-->index.html
插件設(shè)置Servlet訪問url
/**
* Servlet implementation class WtxServlet
*/
方法一: @WebServlet("/wtxServlet")
方法二:@WebServlet(name = "www", urlPatterns = {"/OneServlet", "/One"},loadOnStartup = -1) //loadOnStartup != -1加上服務(wù)器啟動就會init
public class WtxServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
//當每次請求的時候就會調(diào)用此方法
//一但你寫了service就不會再去找doget 或dopost
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method 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());
}
/**
* @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);
}
}
三、設(shè)置響應(yīng)頭和重定向(發(fā)送兩次請求,地址欄會變)
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//設(shè)置響應(yīng)行 設(shè)置狀態(tài)碼
response.setStatus(200);
//添加響應(yīng)頭
response.addHeader("name", "test");
response.addIntHeader("age", 10);
response.addDateHeader("my-Date", new Date().getTime());
response.addHeader("name", "charles");
//修改響應(yīng)頭
response.setHeader("name", "charles_w");
response.setIntHeader("age", 100);
response.setDateHeader("my-Date", new Date().getTime());
//設(shè)置重定向
//訪問兩次-第一次是ResponseServlet,第二次是LocationServlet
response.setStatus(302);
//response.setHeader("location", "/26-Servlet/LocationServlet");
//不用寫location
// response.sendRedirect("/26-Servlet/LocationServlet");
//定時刷新重定向 隔3秒鐘才去轉(zhuǎn)發(fā)
//response.setHeader("refresh","3;url=http://www.baidu.com");
//設(shè)置緩存區(qū)當中使用的編碼 UTF-8
//response.setCharacterEncoding("UTF-8");
//在響應(yīng)當中主動告訴瀏覽使用什么樣的編碼來接收
//response.setHeader("Content-Type", "text/html;charset=UTF-8");
//可以使用簡寫 放在設(shè)置響應(yīng)體之前來設(shè)置編碼
response.setContentType("text/html;charset=UTF-8");
//設(shè)置響應(yīng)體
//寫字符
response.getWriter().write("響應(yīng)數(shù)據(jù)");
//如果字符當中有html瀏覽器會幫你解析
response.getWriter().write("<h1>666</h1>");
//寫中文
response.getWriter().write("我是666");
}
四、ServletContext 全局的對象
//設(shè)置內(nèi)容
this.getServletContext().setAttribute("checkCode", "設(shè)置的內(nèi)容");
//獲取設(shè)置的內(nèi)容
this.getServletContext().getAttribute("checkCode");
五、請求轉(zhuǎn)發(fā)(發(fā)送一次請求,地址欄不會變)
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request);
// 請求轉(zhuǎn)發(fā)
//1.獲取轉(zhuǎn)發(fā)器
//Servlet2 是另一個Servlet
RequestDispatcher disp = request.getRequestDispatcher("/Servlet2");
//域 能夠存儲數(shù)據(jù)
request.setAttribute("key", "value666");
//2.轉(zhuǎn)發(fā)
disp.forward(request, response);
}