servlet 基本結構
public class ServletClass extends HttpServlet {
public void doGet(HttpServletRequest request, HttpSevletResponse response)
throws ServletException,IOException{
//Use “request” to read incoming HTTP headers
//Use “response” to specify the HTTP response status
//use “out” to send content to browser
PrintWriter out = response.getWriter();
}
}
如果希望servlet對GET和POST請求采用同樣的行動,只需要讓doGet調用doPost,反之亦然。
值得注意的是doGet和doPost都要接收以上兩種類型的參數。
servlet 處理表單數據
表單數據
(1)使用FORM來創建HTML表單
<FORM ACTION="..."> 其中 "..."指的就是處理表單的servlet 或者JSP
(2)使用輸入元素收集用戶數據
<INPUT TYPE="TEXT" NAME="...">
(3)在接近表單的尾部放置提交按鈕
<INPUT TYPE="SUBMIT">
讀取表單數據
有三種情況:①request.getParameter②request.getParameterValues
③request.getParameterNames
getParameter對應于單個值的讀取,如果有這個參數但沒值,那就返回空的String;如果沒有這個參數,則返回null
getParameterValues對應于同一個參數的多個值,返回的是一個數組,是這個參數值的集合。如果不存在這個參數名,那就返回一個null;如果這個參數只有一個值,那就返回一個只有一個元素的數組。
getParameterValues返回的是所有參數的一個Enumeration,如果沒有參數,那返回的就是一個空的Enumeration而不是null。同時這個Enumeration中的次序是亂序的。
要對參數為null或者為空String的情況作出相應的處理
if((param==null)||(param.trim().equals(""))){...}
RequestDispatcher
下面的代碼:
RequestDispatcher dispatcher = request.getRequestDispathcer s(address);
dispatcher.forward (request,response);
JSP
JSP直接插入表達式
<%= Java Expression%> 比如:<%= new java.util.Date() %>
其實,JSP在后臺都被轉化成servlet,所以servlet 和 JSP沒有本質的區別。
scriptlet
說白了,就是直接在JSP頁面中插入java代碼,我不是很喜歡,太亂了。舉個例子:
<% if(Math.random()<0.5) {%>
<H1>Have a <I>nice</I> day!</H1>
<% } else {%>
<H1>Have a <I>lousy</I>day!</H1>
<% } %>
JSP page指令
import 屬性
<%@ import = "package.class"%>
<%@ import = "package.class1,package.class2...package.classN"%>
contentType和pageEncoding屬性
<%@ page contentType = "someMimeType; charset = someCharacterSet"%>
比如<%@ page contentType = "application/vnd.ms-excel"%>
pageEncoding指的是字符集
比如設置成日語:<%@ page pageEncoding="Shift_JIS"%>
session屬性
控制頁面是否參加HTTP會話
<%@ page session = "true"%>
isELIgnored屬性
是否忽略JSP2.0表達式語言
<%@ page isELIgnored = "ture"%>
此外還有buffer、autoFlush、errorPage、isErrorPage、isThreadSafe、extends、language屬性
在JSP中使用JavaBean
基本要掌握三個語句
<jsp: useBean id="beanName" class="package.class"/>
<jsp:getProperty name = "beanName" property="propertyName"/>
<jsp:setProperty name ="beanName" property="propertyName" value="propertyValue"/>