发展史,三种架构
从浏览器发出送给服务器的数据包称为 “请求(Request)"
从服务器返回给浏览器的结果称为 “响应(Response)”
J2EE(Java 2 Platform Enterprise Edition)是指“Java 2 企业版”
Servlet 主要用于生成动态Web内容
Tomcat是Apache 软件基金会旗下一款免费的开放源代码的Web应用服务器程序 Tomcat是运行Servlet的容器
一、通过maven向导,创建标准java web工程。
二、将idea与Tomcat进行绑定,点击Add Configeration
public class SampleServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1. 处理请求中的用户数据
String name = req.getParameter("name");
String mobile = req.getParameter("mobile");
//2. 通过响应返回结果
// PrintWriter:字符输出流
PrintWriter out = resp.getWriter();
out.println("<h1>name:" + name + "</h1>");
out.println("<h1>mobile:" + mobile + "</h1>");
}
}
<servlet>
<servlet-name>sample</servlet-name>
<servlet-class>hua.indi.servlet.SampleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sample</servlet-name>
<url-pattern>/sample</url-pattern>
</servlet-mapping>
请求参数是指浏览器通过请求向Tomcat提交的数据
request.getParameter() :接收单个参数
request.getParameterValues() :接收多个同名参数
Get方式将请求参数附加在访问地址后显性向服务器发送的方式。 http://localhost:8080/sample?name=zhangsan Post方式会将数据存放在”请求体”中隐性向服务器发送的方式 http://localhost:8080/samole 请求体:name=zhangsan
public class RequestMethodServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
PrintWriter out = response.getWriter();
out.println("<h1>GET:name=" + name + "</h1>");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
PrintWriter out = response.getWriter();
out.println("<h1>POST:name=" + name + "</h1>");
}
}
public class FirstServlet extends HttpServlet {
/**
* 装载 web.xml 后创建 FirstServlet构造方法
*/
public FirstServlet() {
System.out.println("正在创建FirstServlet");
}
/**
* 初始化加载 FirstServlet
*/
@Override
public void init() throws ServletException {
System.out.println("正在初始化FirstServlet");
}
/**
* Servlet进行服务
*/
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// getParameter获取用户输入的指定参数
String name = req.getParameter("name");
String html = "<h1 style='color:red'>Hi," + name +"!</h1></hr>";
System.out.println("返回给浏览器的响应的内容为:"+name);
// getWriter获取响应流
PrintWriter out = resp.getWriter();
// 向客户端返回响应
out.println(html);
}
/**
* 在创建之前,结束后销毁 FirstServlet
*/
@Override
public void destroy() {
System.out.println("正在销毁FirstServlet");
}
}
Servlet 3.x之后引入了“注解Annotation”特性 注解用于简化Web应用程序的配置过程 Servlet核心注解:@WebServlet
/**
* 添加 @WebServlet
* 运行时会在所有在 WEB-INF 中扫描Class文件
*/
@WebServlet("/anno")
public class AnnotationServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().println("I'm Annotation Servlet~~");
}
}