時(shí)間:2023-05-30 23:45:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-05-30 23:45:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
2018-5-25 JSP_Web_MVC開發(fā)(18)-Servlet簡(jiǎn)介及例子:JSP+DAO的設(shè)計(jì)模式開發(fā)之中,使用最多的概念:request、session(屬性、注銷)、application。此類開發(fā)存在以下問(wèn)題:public abstract class HttpServlet extends GenericServlet implements java.io.Serializable
HttpServlet是一個(gè)抽象類,抽象類的使用原則就是必須有子類,而且子類要覆寫方法。此時(shí)選擇要覆寫的方法為doGet():protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException
例 定義HelloServlet類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;@SuppressWarnings("serial")public class HelloServlet extends HttpServlet { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter out=resp.getWriter();//取得客戶端輸出 out.println("<html>"); out.println("<head><title>第一個(gè)Servlet</title></head>"); out.println("<body>"); out.println("<h1><font color=/"red/">Hello World!</font></h1>"); out.println("</body>"); out.println("</html>"); out.close(); }}
Servlet程序并不是依靠主方法運(yùn)行的,它需要Web容器執(zhí)行,而Web容器要想識(shí)別此程序,則需要修改web.xml文件,增加Servlet的配置。 <!--此處表示定義一個(gè)Servlet的配置--> <servlet> <!--配置的Servlet名稱,與servlet-mapping對(duì)應(yīng)--> <servlet-name>helloServlet</servlet-name> <!--配置此Servlet所在路徑,一定要保存在Web-INF/classes下--> <servlet-class>cn.mytest.servlet.HelloServlet</servlet-class> </servlet> <!--Servlet訪問(wèn)的映射路徑--> <servlet-mapping> <!--與處理的Servlet對(duì)應(yīng)--> <servlet-name>helloServlet</servlet-name> <!--訪問(wèn)路徑,一定要有“/”--> <url-pattern>/hello.do</url-pattern> </servlet-mapping>
如果要進(jìn)行亂碼處理,處理的是服務(wù)器端回應(yīng)的亂碼程序,此時(shí)可以加入如下代碼:public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html"); PrintWriter out=resp.getWriter();//取得客戶端輸出 out.println("<html>"); out.println("<head><title>第一個(gè)Servlet</title></head>"); out.println("<body>"); out.println("<h1><font color=/"black/">這是Hello World!</font></h1>"); out.println("</body>"); out.println("</html>"); out.close();}
今后通過(guò)Servlet輸出數(shù)據(jù),一定要控制編碼問(wèn)題。而且代碼必須在resp.getWriter()之前!package cn.mytest.servlet;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 HelloServlet */@WebServlet( urlPatterns = { "/hello.do" }, initParams = { @WebInitParam(name = "helloServlet", value = "cn.mytest.servlet.HelloServlet") })public class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public HelloServlet() { 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()); }}
注意:web.xml沒有任何改動(dòng)。關(guān)鍵詞:例子
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。