Servlet程序及Servlet的應用

Servlet(Server Applet)是Java Servlet的簡稱,稱爲小服務程序或服務連接器,用Java編寫的服務器端程序,主要功能在於交互式地瀏覽和修改數據,生成動態Web內容。
狹義的Servlet是指Java語言實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,一般情況下,人們將Servlet理解爲後者。Servlet運行於支持Java的應用服務器中。從原理上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基於HTTP協議的Web服務器。
Servlet的配置:
方式一:
<servlet></servlet>配置類文件
<servlet-mapping></servlet-mapping>配置映射地址

方式二:
使用註解的方式配置Servlet
使用註解WebServlet

Servlet的生命週期:

生命週期的各個階段:

:實例化和初始化只調用一次,請求處理可以多次
Servlet程序:
繼承HTTPServlet類,重寫doGet()、doPost()方法
需要在web.xml中配置Servlet
Servlet中可以寫HTML標籤
實例:
public class HelloServlet extends HttpServlet {
	//響應get請求
	@Override
	//其中req就代表JSP中的request對象,reap就代表response對象
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		//判斷是否能夠登錄
		String uname = req.getParameter("uname");
		String pwd = req.getParameter("pwd");
		//設置編碼格式
		//resp.setContentType("textml;charset=UTF-8");
		resp.setCharacterEncoding("UTF-8");
		//使用PringtWrite打印一個網頁
		PrintWriter pw = resp.getWriter();
		if("admin".equals(uname)&&"123456".equals(pwd)){
			//登錄成功
			pw.print("<h1>歡迎您,"+uname+"</h1>");
		}else {
			//登錄失敗
			pw.print("<span style=\"color:red\">"+"登錄失敗!"+"</span>");
		}
		pw.close();
	}
}
在Servlet中使用中文,用Tomcat運行時可能會有編碼異常,解決方法:
編碼方式需要修改的地方:
1.Tomcat中的Servlet.xml
2.response.setcontenttype/response.setcharacterencoding
3.項目、類文件、JSP右鍵properties source必須是utf-8
頁面404:
web.xml中的路徑前必須有/,整個項目都是404
form action相對路徑(先直接訪問Servlet頁面,如果能訪問action)
Servlet中的ServletConfig接口:
在Servlet初始化過程中獲取配置信息
一個Servlet只有一個ServletConfig對象
getInitParameter獲取初始化參數(獲取當前這個Servlet)
ServletConfig就是JSP內置對象config的原類型
配置初始化參數兩種方式:
1. web.xml(<init-param>)
2. 註解@WebInitParam(name,value)
ServletConfig接口的常用方法

ServletConfig.java
out.println("  <BODY>");
   //獲取對應Servlet的配置信息
   ServletConfig config = getServletConfig();
   //getInitParameter獲取初始化參數
   String info = config.getInitParameter("info");
   out.println("init param info is "+info);
   out.println("  </BODY>");
Servlet中的doGet()和doPost()方法
使用doXxx()接收用戶請求
doGet():用戶使用get方式提交請求時調用
doPost():用戶使用post方式提交請求時調用

發佈了127 篇原創文章 · 獲贊 61 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章