1.get post 请求 根据请求参数返回不同的页面 * http://ip:prot/server?opt=a 返回HTML文件 opt=b 返回图片 opt=c 返回text * post 注册 name phone sex salary job 返回HTML 提示添加完成消息
TestServlet.java
package com.yq.servlet;
/*
* 1. get post 请求
* 根据请求参数返回不同的页面
* http://ip:prot/server?opt=a 返回HTML文件 opt=b 返回图片 opt=c 返回text
* post 注册 name phone sex salary job 返回HTML 提示添加完成消息
* */
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
@WebServlet(urlPatterns = "/test")
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置响应类型 text/plain文本响应 image/jpg图片响应 application/xml xml响应 text/HTML HTML响应
String opt = req.getParameter("opt");
System.out.println("opt = "+opt);
if(opt.equals("a")){
resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
PrintWriter writer = resp.getWriter();// 字符流
writer.println("<p>返回HTML文件</p>");
writer.close();
}else if(opt.equals("b")){
resp.setContentType("image/jpg");
ServletOutputStream out = resp.getOutputStream();// 字节流
//获取图片输入流
InputStream in = getServletContext().getResourceAsStream("images/1.jpg");
byte[] data = new byte[4096];
int len;
while((len = in.read(data)) != -1){
out.write(data,0,len);
}
out.close();
in.close();
}else if(opt.equals("c")){
resp.setContentType("text/plain");
resp.setCharacterEncoding("UTF-8");
PrintWriter writer = resp.getWriter();// 字符流
writer.println("<p>返回text文件</p>");
writer.close();
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doPost 处理Post请求");
String name = req.getParameter("name");
String phone = req.getParameter("phone");
String sex = req.getParameter("sex");
String salary = req.getParameter("salary");
String job = req.getParameter("job");
System.out.println("doPost处理post请求 " + name+", "+ phone+", "+ sex+", "+ salary+", "+ job);
resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
PrintWriter writer = resp.getWriter();// 字符流
writer.println("<p>添加完成消息</p>");
writer.close();
}
}
test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="test">
<p>opt<input type="text" name="opt"></p>
<p>
<input type="submit" value="get请求" onclick="this.form.method='GET'">
<input type="submit" value="post请求" onclick="this.form.method='POST'">
</p>
<p>姓名<input type="text" name="name"></p>
<p>电话<input type="text" name="phone"></p>
<p>性别<input checked="checked" name="sex" type="radio" value="男">男
<input checked="checked" name="sex" type="radio" value="女">女</p>
<p>工资<input type="text" name="salary"></p>
<p>
<select name="job">
<option value="经理">经理</option>
<option value="收银">收银</option>
<option value="前台">前台</option>
<option value="保洁">保洁</option>
</select>
</p>
<p>
<input type="submit" value="post请求" onclick="this.form.method='POST'">
</p>
</form>
</body>
</html>
2.转发 重定向 *http://ip:prot/hand?forward=a 转发HTML文件 forwar=b 进入淘宝网站
TestServlet2.java
package com.yq.servlet;
/*转发 重定向
*http://ip:prot/hand?forward=a 转发HTML文件 forwar=b 进入京东网站
* */
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
@WebServlet(urlPatterns = "/test2")
public class TestServlet2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置响应类型 text/plain文本响应 image/jpg图片响应 application/xml xml响应 text/HTML HTML响应
String forwar = req.getParameter("forwar");
System.out.println("forwar = "+forwar);
if(forwar.equals("a")){
req.getRequestDispatcher("/message.html").forward(req, resp);
}else if(forwar.equals("b")){
resp.sendRedirect("https://www.taobao.com/");
}
}
}
test2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<hr>
<form action="test2">
<p>opt<input type="text" name="forwar"></p>
<p>
<input type="submit" value="按钮 " onclick="this.form.method='GET'">
</p>
</form>
</body>
</html>
3. 配置参数 初始化参数 username获取初始化参数输出
TestServlet3.java
package com.yq.servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/*配置参数 初始化参数 username获取初始化参数输出*/
@WebServlet(urlPatterns = "/test3")
public class TestServlet3 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
resp.getWriter().println("username初始化参数"+getServletContext().getInitParameter("username"));
}
}
test3.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<hr>
<form action="test3">
<p><button>初始化参数</button></p>
</form>
</body>
</html>
web.xml
<servlet>
<servlet-name>TestServlet3</servlet-name>
<servlet-class>com.yq.servlet.TestServlet3</servlet-class>
<init-param>
<param-name>username</param-name>
<param-value>Tony</param-value>
</init-param>
</servlet>
4.异常处理 出现异常转入提示页面
test4.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<hr>
<form action="test4">
<h3>资源异常</h3>
<p><a href="message.html">异常</a></p>
</form>
</body>
</html>
message.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h3> message 页面 </h3>
<hr>
<form>
<h3>出现异常</h3>
<h5>资源找不到喽......</h5>
</form>
</body>
</html>
web.xml
<error-page>
<error-code>500</error-code>
<location>/message.html</location>
</error-page>
<error-page>
<error-code>405</error-code>
<location>/message.html</location>
</error-page>
<error-page>
<error-code>400</error-code>
<location>/message.html</location>
</error-page>
<error-page>
<error-code>505</error-code>
<location>/message.html</location>
</error-page>