JavaWeb基本概念
JavaWeb:是用Java技术来解决相关web(Web就是在Http协议基础之上, 利用浏览器进行访问的网站)互联网领域的技术总和
一、servlet与servlet容器
Java Servlet(Java服务器小程序)是一个基于Java技术的Web组件,运行在服务器端,它由Servlet容器所管理,用于生成动态的内容(即 运行在服务器端以多线程的方式处理客户端请求的小程序)。
Servlet容器也叫做Servlet引擎,是Web服务器或应用程序服务器的一部分,Servlet没有main方法,不能独立运行,它必须被部署到Servlet容器中,由容器来实例化和调用 Servlet的方法(如doGet()和doPost()),Servlet容器在Servlet的生命周期内包容和管理Servlet。管理和运行Servlet/JSP的容器也称为Web容器。
具体的Servlet容器的产品:Tomcat,JBoss,WebSphere,WebLogic 等等
dynamic web module和对应的Tomcat 版本
dynamic web module 2.4 对应Tomcat 5.5
dynamic web module 2.5 对应Tomcat 6.0
dynamic web module 3.0 对应Tomcat 7.0
dynamic web module 3.1 对应Tomcat 8.0-9.0
Servlet可以完成以下功能:
1、创建并返回客户请求的动态HTML页面
2、创建可以嵌入到 HTML页面的HTML片段
3、与其他服务器(如数据库或基于Java的应用程序)进行通信
二、第一个Servlet程序
1、新建一个dynamic web project 动态的JavaWeb项目
JavaWeb项目目录结构
2、新建一个LifeServelt 类
1)Servlet的含义:运行在服务器端的以多线程的方式处理客户端请求的小程序
2)创建servlet的方式
implements Servlet或者是extends GenericServlet或者是extends HttpServlet 项目中建议使用extends HttpServlet 重写doget和dopost方法
(1) implements Servlet
public class LifeServelt implements Servlet{
@Override
public void destroy() {
System.out.println("destroy");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {
System.out.println("init");
}
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("service");
}
}
(2) extends GenericServlet
public class LifeServelt extends GenericServlet{
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("GenericServlet");
}
}
3、在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>myservlet</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!--
1.注册servlet
servlet-name的值是可以自定义的
servlet-class 包名加上类名
-->
<servlet>
<servlet-name>LifeServelt</servlet-name>
<servlet-class>cn.jq.myservlet.LifeServelt</servlet-class>
</servlet>
<!--
2.给已注册的servlet,映射一个url地址
servlet-name的值和servlet标签中的servlet-name值一致
url-pattern:servlet的访问方式 是可以自定义的
-->
<servlet-mapping>
<servlet-name>LifeServelt</servlet-name>
<url-pattern>/LifeServelt</url-pattern>
</servlet-mapping>
</web-app>
4、项目发布到服务器上
浏览器访问:http://127.0.0.1:8080/myservlet/LifeServelt ,stop 服务器