JAVA WEB篇2——Servlet
生活随笔
收集整理的這篇文章主要介紹了
JAVA WEB篇2——Servlet
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
JAVA WEB篇2——Servlet
Servlet(Server Applet)是Java Servlet的簡(jiǎn)稱(chēng),稱(chēng)為小服務(wù)程序或服務(wù)連接器,是Java語(yǔ)言編寫(xiě) 的服務(wù)器端程序,換句話(huà)說(shuō),Servlet就是運(yùn)行在服務(wù)器上的Java類(lèi)。 Servlet用來(lái)完成B/S架構(gòu)下客戶(hù)端請(qǐng)求的響應(yīng)處理,也就是交互式地瀏覽和生成數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容
1、第一個(gè)servlet程序(servlet)
導(dǎo)入依賴(lài)
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.0</version><scope>provided</scope></dependency>1.1、實(shí)現(xiàn)Servlet
public class HelloServlet implements Servlet {@Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println("servlet初始化");}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("servlet被訪(fǎng)問(wèn)了");}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {System.out.println("servlet銷(xiāo)毀");} } <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><servlet><servlet-name>hello</servlet-name><servlet-class>HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping> </web-app>1.2、繼承GenericServlet
public class HelloServlet extends GenericServlet {@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("servlet被訪(fǎng)問(wèn)了");} }1.3、繼承HttpServlet
public class HelloServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("servlet被訪(fǎng)問(wèn)了");} }1.4、Servlet注解
@WebServlet("/RuoyrServlet") public class RuoyrServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("post");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("get");} }2、Servlet的生命周期
創(chuàng)建(init): 用戶(hù)第一次訪(fǎng)問(wèn)servlet創(chuàng)建servlet的實(shí)例.
銷(xiāo)毀(destroy): 當(dāng)項(xiàng)目從服務(wù)器移除,或服務(wù)器關(guān)閉的時(shí)候
3、請(qǐng)求參數(shù)的獲取
| String getParameter(String name) | 以字符串形式返回請(qǐng)求參數(shù)的值,如果該參數(shù)不存在,則返回空值 |
| String[] getParameterValues( String name) | 返回一個(gè)字符串對(duì)象數(shù)組,其中包含給定請(qǐng)求參數(shù)所具有的所有 值,如果該參數(shù)不存在,則返回空值 |
| Enumeration getParameterNames() | 返回包含此請(qǐng)求中包含的參數(shù)名稱(chēng)的字符串對(duì)象的枚舉。如果請(qǐng) 求沒(méi)有參數(shù),則方法返回空枚舉 |
| Map getParameterMap() | 返回請(qǐng)求參數(shù)的鍵值對(duì),一個(gè)鍵可以對(duì)應(yīng)多個(gè)值 |
| String getRemoteAddr() | 返回發(fā)送請(qǐng)求的客戶(hù)端或最后一個(gè)代理的IP地址 |
| int getRemotePort() | 返回發(fā)送請(qǐng)求的客戶(hù)端或最后一個(gè)代理的端口號(hào) |
| String getRequestURI() | 返回此請(qǐng)求的資源路徑信息 |
| StringBuffer getRequestURL() | 返回此請(qǐng)求的完整路徑信息 |
| String getMethod() | 返回發(fā)出此請(qǐng)求的HTTP方法的名稱(chēng),例如GET、POST |
| String getQueryString() | 返回路徑后面請(qǐng)求中附帶的參數(shù) |
| String getServletPath() | 返回此請(qǐng)求中調(diào)用servlet的路徑部分 |
4、響應(yīng)消息
@WebServlet("/RuoyrServlet") public class RuoyrServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("post");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("get");response.setCharacterEncoding("UTF8");response.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();writer.write("我已收到請(qǐng)求");} }5、請(qǐng)求亂碼處理
public class RuoyrServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("post");System.out.println(request.getParameter("name"));System.out.println(new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF8"));response.setCharacterEncoding("UTF8");response.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();writer.write("我已收到請(qǐng)求");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("get");} }6、ServletConfig、ServletContext
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><servlet><servlet-name>hello</servlet-name><servlet-class>HelloServlet</servlet-class><init-param><param-name>usernaame</param-name><param-value>admin</param-value></init-param></servlet><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping><context-param><param-name>username</param-name><param-value>ruoye</param-value></context-param> </web-app> public class HelloServlet implements Servlet {@Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println(servletConfig.getServletName());System.out.println(servletConfig.getInitParameter("username"));ServletContext servletContext = servletConfig.getServletContext();Enumeration<String> attributeNames = servletContext.getAttributeNames();while (attributeNames.hasMoreElements()){System.out.println(attributeNames.nextElement());}}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {} }總結(jié)
以上是生活随笔為你收集整理的JAVA WEB篇2——Servlet的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: html怎么保存曲奇,自制曲奇饼能保存多
- 下一篇: 香帅的北大金融学课笔记12 -- 资产估