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"/>