Servlet开发
init():初始化jsp/servlet的方法。
destroy():销毁jsp/servlet之前的方法。
service():对用户请求生成响应的方法。
如果需要重写init()方法重写该方法的第一行调用super.init(config)。该方法将调用HttpServlet的init方法。
Servlet用于响应客户端请求的方法:
doGet() 用于响应客户端GET的请求。
doPost() 用于响应客户端的POST请求。
doPut() 用于响应客户端的PUT请求。
doDelete() 用于响应客户端的DELETE请求。
大部分时候,servlet对于所有请求响应都是完全一样的。此时,可以采用重写一个方法来代替上面的几个方法:只需要重写service()方法即可响应客户端的所有请求。
Servlet配置
1、 通过@WebServlet Annotation进行配置
如果使用annotation配置需要注意:
不能再web.xml文件的根元素(<web-app…/>)中指定metadata-complete=”true”。
不能再web.xml文件中配置该Servlet。
2、 通过web.xml文件进行配置
配置Servlet的名字:对应web.xml文件中的<servlet/>元素。
配置servlet的URL:对应web.xml文件中的<servlet-mapping/>元素.
Input.jsp
<form method="post" action="/test/myServlet">
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="gender" value="男">男
<input type="radio" name="gender" value="女">女
</td>
</tr>
<tr>
<td>颜色:</td>
<td>
<input type="checkbox" name="color" value="blue">蓝色
<input type="checkbox" name="color" value="green">绿色
</td>
</tr>
<tr>
<td>国家:</td>
<td>
<select name="country">
<option value="1">中国</option>
</select>
</td>
</tr>
<tr>
<td><input type="submit"></td>
</tr>
</table>
</form>
@WebServlet(name="myServlet",urlPatterns="/myServlet")
public class MyServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置解码方法
request.setCharacterEncoding("GBK");
response.setContentType("text/html;charSet=GBK");
//获取name的请求参数
String name=request.getParameter("name");
//获取gender的请求参数
String gender=request.getParameter("gender");
//获取color的请求参数
String[] color=request.getParameterValues("color");
//获取country的请求参数
String country=request.getParameter("country");
//获取页面输出流
PrintStream out=new PrintStream(response.getOutputStream());
//输出html页面标签
out.println("<html>");
out.println("<head>");
out.println("<title>servlet测试</title>");
out.println("</head>");
out.println("<body>");
//输出请求参数的值:name
out.println("您的名字:"+name+"<hr/>");
out.println("您的性别:"+gender+"<hr/>");
out.println("您喜欢的颜色:");
for(String c:color){
out.println(c+" ");
}
out.println("<hr/>");
out.println("您来自的国家:"+country);
out.println("</body>");
out.println("</html>");
}
通过web.xml方式配置servlet:
<!-- 配置servlet的名字 -->
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.xxx.action.MyServlet</servlet-class>
</servlet>
<!-- 配置servlet的URL -->
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myServlet</url-pattern>
</servlet-mapping>