Servlet概述
package web;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TimeServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
//1.使用request获取请求数据
//1)请求行
System.out.println("请求方式:"+req.getMethod());
System.out.println("访问路径:"+req.getServletPath());
System.out.println("协议类型:"+req.getProtocol());
//2)消息头(键值对)
//Enumeration是老版本的迭代器,(迭代器模式还有jdbc的resultset)
//用法和Iterator类似.
Enumeration<String> e =
req.getHeaderNames();
while(e.hasMoreElements()) {
String key = e.nextElement();//获得一个key
String value = req.getHeader(key);
System.out.println(key+":"+value);
}
//3)实体内容
//本案例没有传递具体业务数据,
//所以实体内容为空,以后再演示.
//2.使用response发送响应数据
//1)状态行
//该数据由服务器自动填充.
//2)消息头
//消息头中的大部分数据由服务器填充,
//但返回的内容格式需要程序员指定.
//3)实体内容
//告诉浏览器给他发送的是网页
//如果这个格式写错了,浏览器会无法识别.
//它只能让你保存这个软件.
res.setContentType("text/html");
PrintWriter out = res.getWriter();
Date date = new Date();
SimpleDateFormat sdf =
new SimpleDateFormat("HH:mm:ss");
String now = sdf.format(date);
//3)实体内容
//我们输出的网页就是实体内容
//此处偷懒了,省略了网页的基本结构.
//将来有改进的方案.
out.println("<p>"+now+"</p>");
out.close();
}
}
<br/>
//servlet流程介绍
package web;
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;
public class RegServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
/*
* 处理请求的一般步骤是:
* 1.接收参数
* 2.处理业务
* 3.发送响应
*/
//post 在接受参数之前设置,只对post有效
req.setCharacterEncoding("utf-8");
//1.接受参数
String user = req.getParameter("userName");
String pwd = req.getParameter("pwd");
String sex = req.getParameter("sex");
String[] interests =
req.getParameterValues("interest");
//处理请求的乱码
//万能
//1.byte[] bs = user.getBytes("ISO8859-1");
//user = new String(bs,"utf-8");
//只对get有效
//2.server.xml 63-65行左右<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
//2.处理业务
//常规的注册业务应该保存这些数据,
//但本案重点在于传参,因此就不存了.
System.out.println(user);
System.out.println(pwd);
System.out.println(sex);
if(interests != null) {
for(String i : interests) {
System.out.println(i);
}
}
//3.发送响应
res.setContentType("text/html;charse=utf-8");
PrintWriter out = res.getWriter();
out.println("<p>"+"注册成功"+"</p>");
out.close();
}
}