练习
1.get post请求
根据请求参数返回不同的页面
http:l/ip:prot/server?opt=a返回html文件 opt=b返回图片opt=c返回text
RespServlet .java
@WebServlet(urlPatterns = "/resp")
public class RespServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// FileInputStream in = new FileInputStream("images/s.png");
req.setCharacterEncoding("UTF-8");
String opt = req.getParameter("opt");
if (opt.equals("b")) {
resp.setContentType("image/png");
InputStream resourceAsStream = getServletContext().getResourceAsStream("images/s.png");
byte[] date = new byte[4096];
int len;
ServletOutputStream out = resp.getOutputStream();
while ((len = resourceAsStream.read(date)) != -1) {
out.write(date, 0, len);
}
out.close();
resourceAsStream.close();
}else if(opt.equals("c")){
resp.setContentType("text/plain;charset=UTF-8");
resp.getWriter().println("返回text类型");
}
}
}
post注册name phone sex salary job返回html提示添加完成消息
LoginServlet.java
@WebServlet(urlPatterns = "/login")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
resp.setCharacterEncoding("UTF-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
resp.getWriter().println("doget请求");
System.out.println(username+":"+password);
resp.getWriter().println(username+":"+password);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
resp.setCharacterEncoding("UTF-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
resp.getWriter().println("dopost请求");
System.out.println(username+":"+password);
resp.getWriter().println(username+":"+password);
}
}
2.转发重定向
http://ip:prot/hand?forward= a转发html forwar = b 进入淘宝网站
ForwardServlet.java
@WebServlet(urlPatterns = "/hand")
public class ForwardServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String forward = req.getParameter("forward");
if (forward.equals("a")){
req.getRequestDispatcher("/login.html").forward(req,resp);//转发
}else if(forward.equals("b")){
resp.sendRedirect("https://www.taobao.com/");//重定向
}
}
}
3.配置参数初始化参数username获取初始化参数输出
web.xml 配置
InitServlet com.yq.servlet.InitServlet username 法外狂徒张三
public class InitServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().println("username初始化参数:"+getInitParameter("username"));
}
}
4.异常处理出现异常转入提示页面
web.xml 配置
InitServlet /Init 500 /error.html 400 /error.html 403 /error.html 404 /error.html
error.html
Title
ERROR页面
emmmm......资源跑到火星上去了
index.html
Title



