慕课网学习笔记-Servlet 加油吧
1.软件结构发展史
1.1单机时代
1.2联机时代(Client-Server模式)
1.3互联网时代(Broswer-Server模式)
2.请问与响应、B/S模式执行流程
从浏览器发出送给服务器的数据包称为“请求 Request ”
从服务器返回给浏览器的结果称为“响应 Response ”
3.J2EE 与 Apache Tomcat
4.Servlet
4.1
Servlet(Server Applet)服务器小程序,主要功能用于生产动态Web内容
4.2
Servlet是J2EE最主要的组成部分,也是我们学习的重点
4.3Tomcat与Servlet的关系
5.第一个Servlet
1 package com.imooc.servlet; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletConfig; 7 import javax.servlet.ServletException; 8 import javax.servlet.http.HttpServlet; 9 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletResponse; 11 12 public class FirstServlet extends HttpServlet{ 13 14 public FirstServlet(){ 15 System.out.println("正在创建FirstServlet对象"); 16 } 17 18 19 20 @Override 21 public void init(ServletConfig config) throws ServletException { 22 System.out.println("正在初始化FirstServlet对象"); 23 } 24 25 26 27 @Override 28 protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 29 //接收请求发来的参数 30 String name = request.getParameter("name"); 31 String html = "<h1 style='color:red'>hi," + name +"!</h1><hr/>"; 32 System.out.println("返回给浏览器的响应数据为:" + html); 33 PrintWriter out = response.getWriter(); 34 out.println(html);//将html发送回浏览器 35 } 36 37 38 39 @Override 40 public void destroy() { 41 System.out.println("正在销毁servlet对象"); 42 } 43 44 45 }
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 3 <display-name>FirstServlet</display-name> 4 <welcome-file-list> 5 <welcome-file>index.html</welcome-file> 6 <welcome-file>index.htm</welcome-file> 7 <welcome-file>index.jsp</welcome-file> 8 <welcome-file>default.html</welcome-file> 9 <welcome-file>default.htm</welcome-file> 10 <welcome-file>default.jsp</welcome-file> 11 </welcome-file-list> 12 <!-- 声明Servlet --> 13 <servlet> 14 <!-- servlet的别名 --> 15 <servlet-name>first</servlet-name> 16 <servlet-class>com.imooc.servlet.FirstServlet</servlet-class> 17 </servlet> 18 <!-- 将Servlet与url绑定 --> 19 <servlet-mapping> 20 <servlet-name>first</servlet-name> 21 <url-pattern>/hi</url-pattern> 22 </servlet-mapping> 23 24 <servlet> 25 <!-- servlet的别名 --> 26 <servlet-name>sample</servlet-name> 27 <servlet-class>com.imooc.servlet.SampleServlet</servlet-class> 28 </servlet> 29 <servlet-mapping> 30 <servlet-name>sample</servlet-name> 31 <url-pattern>/sample</url-pattern> 32 </servlet-mapping> 33 34 <servlet> 35 <!-- servlet的别名 --> 36 <servlet-name>requestMethod</servlet-name> 37 <servlet-class>com.imooc.servlet.RequestMethodServlet</servlet-class> 38 </servlet> 39 <servlet-mapping> 40 <servlet-name>requestMethod</servlet-name> 41 <url-pattern>/request_method</url-pattern> 42 </servlet-mapping> 43 </web-app>
6.标准Java Web工程、Servlet开发步骤
7.Servlet
7.1Servlet访问方法
如:
http://localhost:8080/FirstServlet/anno
7.2请求参数
如:
http://localhost:8080/FirstServlet/sample?name=10086
&mobile=158&sex=male&spec=English&spec=Program&spec=Speech&spec=Swimming
7.3Servlet接收请求参数
如:
String sex=request.getParameter("sex");
String[] spec=request.getParameterValues("spec");
7.4Get与Post请求方法
Get请求提交的数据,可以在浏览器调试页面的Query String Parameters中查看
Post请求提交的数据,可以在浏览器调试页面的Form Data中查看
Post请求可以用于安全性较高的功能
7.5Get与Post处理方式
1 package com.imooc.servlet; 2 3 4 import java.io.IOException; 5 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 11 public class RequestMethodServlet extends HttpServlet{ 12 public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException { 13 String name=request.getParameter("name"); 14 response.getWriter().println("<h1 style='color:green'>"+name+"</h1>"); 15 } 16 17 public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException { 18 String name=request.getParameter("name"); 19 response.getWriter().println("<h1 style='color:red'>"+name+"</h1>"); 20 } 21 }
7.6应用场景
8.Servlet生命周期
1 package com.imooc.servlet; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletConfig; 7 import javax.servlet.ServletException; 8 import javax.servlet.http.HttpServlet; 9 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletResponse; 11 12 public class FirstServlet extends HttpServlet{ 13 14 public FirstServlet(){ 15 System.out.println("正在创建FirstServlet对象"); 16 } 17 18 19 20 @Override 21 public void init(ServletConfig config) throws ServletException { 22 System.out.println("正在初始化FirstServlet对象"); 23 } 24 25 26 27 @Override 28 protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 29 //接收请求发来的参数 30 String name = request.getParameter("name"); 31 String html = "<h1 style='color:red'>hi," + name +"!</h1><hr/>"; 32 System.out.println("返回给浏览器的响应数据为:" + html); 33 PrintWriter out = response.getWriter(); 34 out.println(html);//将html发送回浏览器 35 } 36 37 38 39 @Override 40 public void destroy() { 41 System.out.println("正在销毁servlet对象"); 42 } 43 44 45 }
9.使用注解配置Servlet
1 package com.imooc.servlet; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.annotation.WebServlet; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 11 @WebServlet("/anno") 12 13 public class AnnotationServlet extends HttpServlet{ 14 15 @Override 16 protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 17 // TODO Auto-generated method stub 18 resp.getWriter().println("I,m annotation servlet!"); 19 } 20 21 }
10.启动时加载Servlet
1 package com.imooc.servlet; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.annotation.WebServlet; 5 import javax.servlet.http.HttpServlet; 6 7 8 public class CreateServlet extends HttpServlet{ 9 10 @Override 11 public void init() throws ServletException { 12 System.out.println("正在创建数据库"); 13 } 14 15 }
1 package com.imooc.servlet; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.annotation.WebServlet; 5 import javax.servlet.http.HttpServlet; 6 7 @WebServlet(urlPatterns="/unused",loadOnStartup=12) 8 public class ImportServlet extends HttpServlet{ 9 10 @Override 11 public void init() throws ServletException { 12 System.out.println("正在导入数据"); 13 } 14 15 }
注解必须,两个参数
@WebServlet(urlPatterns="/unused",loadOnStartup=12)