JAVA WEB篇2——Servlet
生活随笔
收集整理的這篇文章主要介紹了
JAVA WEB篇2——Servlet
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JAVA WEB篇2——Servlet
Servlet(Server Applet)是Java Servlet的簡稱,稱為小服務程序或服務連接器,是Java語言編寫 的服務器端程序,換句話說,Servlet就是運行在服務器上的Java類。 Servlet用來完成B/S架構下客戶端請求的響應處理,也就是交互式地瀏覽和生成數據,生成動態Web內容
1、第一個servlet程序(servlet)
導入依賴
<!-- 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、實現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被訪問了");}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {System.out.println("servlet銷毀");} } <?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被訪問了");} }1.3、繼承HttpServlet
public class HelloServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("servlet被訪問了");} }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的生命周期
創建(init): 用戶第一次訪問servlet創建servlet的實例.
銷毀(destroy): 當項目從服務器移除,或服務器關閉的時候
3、請求參數的獲取
| String getParameter(String name) | 以字符串形式返回請求參數的值,如果該參數不存在,則返回空值 |
| String[] getParameterValues( String name) | 返回一個字符串對象數組,其中包含給定請求參數所具有的所有 值,如果該參數不存在,則返回空值 |
| Enumeration getParameterNames() | 返回包含此請求中包含的參數名稱的字符串對象的枚舉。如果請 求沒有參數,則方法返回空枚舉 |
| Map getParameterMap() | 返回請求參數的鍵值對,一個鍵可以對應多個值 |
| String getRemoteAddr() | 返回發送請求的客戶端或最后一個代理的IP地址 |
| int getRemotePort() | 返回發送請求的客戶端或最后一個代理的端口號 |
| String getRequestURI() | 返回此請求的資源路徑信息 |
| StringBuffer getRequestURL() | 返回此請求的完整路徑信息 |
| String getMethod() | 返回發出此請求的HTTP方法的名稱,例如GET、POST |
| String getQueryString() | 返回路徑后面請求中附帶的參數 |
| String getServletPath() | 返回此請求中調用servlet的路徑部分 |
4、響應消息
@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("我已收到請求");} }5、請求亂碼處理
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("我已收到請求");}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() {} }總結
以上是生活随笔為你收集整理的JAVA WEB篇2——Servlet的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html怎么保存曲奇,自制曲奇饼能保存多
- 下一篇: 香帅的北大金融学课笔记12 -- 资产估