一、什么是Servlet?
Servlet(Server Applet)服务器小程序,主要功能是生成动态web内容,Servlet是J2EE的重要组成部分。
下图可理解为servlet的处理示意:
二、Tomcat安装及与Eclipse联动
①安装:安装JDK——>安装tomcat(与JDK版本对应)——>安装Tomcat解压
②联动Eclipse:
- 设定JDK
- 设定Tomcat[Windows-show view - server]
- server location-选择2 use tomcat installation -deploy path-apache下的webapp
三、第一个servlet程序:
首先在eclipse建立web工程,然后src下建立servlet类继承servlet,重写Service方法,然后配置web.xml,最后调用。
代码如下图示例:
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<display-name>FirstServlet</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>default.htm</welcome-file>
</welcome-file-list>
<!-- 声明servlet -->
<servlet>
<!-- Servlet别名 -->
<servlet-name>first</servlet-name>
<servlet-class>com.imooc.servlet.FirstServlet</servlet-class>
</servlet>
<!-- 将Servlet和URL绑定 -->
<servlet-mapping>
<servlet-name>first</servlet-name>
<url-pattern>/hi</url-pattern>
</servlet-mapping>
</web-app>
servlet类:
package com.imooc.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.security.auth.message.callback.PrivateKeyCallback.Request;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FirstServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest rerquest, HttpServletResponse response) throws ServletException, IOException {
String name =rerquest.getParameter("name");
String html="<h1 style='color:red'>hi,"+name+"!</h1><hr/>";
PrintWriter out = response.getWriter();
out.println(html);//将html返回给浏览器
System.out.println("返回给浏览器的响应数据为"+html);
}
}
图解执行流程:
四、web.xml作用(参考:web.xml文件的作用_hidetou的博客-CSDN博客_web.xml的作用)
一个web中可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的,web.xml文件是用来初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。
五、webapp和webcontent又什么区别?
看视屏创建的都是webcontent,我的却是webapp,初步认为仅仅是名称不同,使用上没区别,后序学习到相关的再做更新。
六、servlet开发步骤
- 创建servlet类,继承HttpServlet
- 重写service方法,编写程序代码
- 配置web.xml,绑定URL。
七、servlet访问方法:
- http://IP地址:端口/context-path/url-mapping
远程访问使用IP地址,本地访问使用localhost(127.0.0.1)
- context-path称为“上下文路径”,默认为工程名称
八、Servlet获取 参数的方法
请求参数:
- 请求参数是指浏览器通过请求向Tomcat提交的数据
- 请求参数通常是用户输入的数据,待Servlet进行处理
- 参数名1=值1&参数名2=值2&参数名n=..
Servlet接受请求入参:
- request.getParameter()-接收单个参数
- request.getParameterValues() -接收多个同名参数
九、get和post请求
get的请求参数一般展示在url上,安全性较低,post在参数体,安全性高一点。所以get一般用于查询等安全性要求较低的查询工作,post用于用户注册,登录等或者高安全性要求的操作。
十、Servlet生命周期,
servlet生命周期分为5个阶段:
当启动之后,web.xml就装载了servlet,然后当访问该Servlet时候,servlet就被创建,然后进行初始化,此时该Servlet就长期存在,调用时执行服务,最后关闭应用就销毁servlet。
十一、使用注解配置Servlet
如图,使用WebServlet注解之后就不需要再在web.xml配置,也可以正常访问:
package com.imooc.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/helloAnnotation") public class Annotation extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().println("<p>hello</p>"); } }
十二、启动时加载Servlet
首先是需要创建servlet类,其次是复写init方法!
例如方法一,配置web.xml使用<load-on-startup>设置启动加载。
package com.imooc.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class No1Servlet extends HttpServlet{
@Override
public void init() throws ServletException {
System.out.println("正在导入数据");
}
}
web.xml:
<servlet>
<servlet-name>load</servlet-name>
<servlet-class>com.imooc.servlet.No1Servlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
方法二:利用注解@WebServlet(urlPatterns = "/unused",loadOnStartup = 3)
例如:
package com.imooc.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns = "/unused",loadOnStartup = 3)
public class No3Servlet extends HttpServlet{
@Override
public void init() throws ServletException { // TODO Auto-generated method stub
System.out.println("正在处理数据");
}
}
十三、温习webservlet调用两种方式:
1.采用Webservice注解
2.web.xml配置,配置如下: