servlet(一)

用户(浏览器)访问服务访问的是资源,包括
静态web资源 HTML,css,js
动态web资源 jsp Servlet

用户通过网址请求服务器端
请求的就是服务器端的静态和动态资源
请求完成后会给浏览器一个响应结果

服务器(tomcat)

轻量级服务器 sun公司 开源的免费的
注意:我们写的java代码和前端html页面
 全都是放到服务器上运行(服务器端开发 是开发放到服务器上运行的代码
 而不是开发一个服务器出来)

tomcat服务器下文件夹

bin 存放编译指令的(开启关闭服务)
conf  存放tomcat自己的配置文件
lib  存放tomcat依赖的jar包
logs 存放的是用户访问服务器的日志
temp 临时文件文件夹
webapps 默认 存放工程的文件夹
work 存放tomcat自己的工作文件
wtpwebapps与eclipse关联后工程存放的文件夹

如何利用中断开启tomcat服务

 1.前往tomcat的bin文件夹下
 2.开启文件夹管理权限(读写)
 sudo chmod 755 *.sh
 3.开启服务(Windows下 执行的是.bat后缀的指令)
 sudo sh ./startup.sh
 ----------访问服务器上的资源
 注意不要重复开启服务,否则会出现端口被占用错误
4. 执行关闭服务器
sudo sh ./shutdown.sh

如何确认tomcat服务已经启动

访问网址
http://IP地址:端口号/项目名称/访问的资源
通过这个网址 查看tomcat服务是否启动
http://localhost:8080

servlet

 Servlet(小服务程序) 是个java接口
 访问服务器 实际上访问的就是servlet
 Servlet(容器 有访问动态资源)

Servlet的生命周期方法

 实例化-->初始化-->服务方法-->销毁方法
 servlet只在第一次访问时创建一次
 当你再次访问该servlet时
 不会创建新的servlet
 只会重复调用服务方法 service方法

简单谈谈servlet的访问流程

1.通过用户请求的网址服务器获得项目名称
2.找到对应的项目后 从项目中找到该项目的web.xml文件
3.从xml文件找到访问servlet的路径(/demo01)
4.通过servlet路径找到用户要访问哪一个servlet的名字(demo01)
5.通过servlet名字 就能找到 要创建的servlet属于哪个类
6.系统通过反射创建该类的对象走生命周期的4个方法

创建servlet的三种方式

1.直接实现Servlet接口

//实例化方法(创建对象的无参构造方法)
	public Demo01(){
		System.out.println("实例化对象无参构造方法");
	}
	//初始化方法(初始化Servlet配置信息)
	public void init(ServletConfig arg0) throws ServletException {
		System.out.println("初始化init方法 被调用");
		
	}
	//服务方法(处理用户的请求 处理完成后 响应给用户)
	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
		System.out.println("service方法被调用了");
		
	}
	//Servlet的销毁方法
	//1.服务器关闭会调用
	//2.该应用程序被移除也会调用
	public void destroy() {
		System.out.println("destroy方法被调用");
		
	}
	//获取Servlet配置信息的方法
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}
	//获取Servlet版本的方法
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}
2.继承GenericServlet(利用缺省适配器方式 帮你简化代码 生命周期方法可以不写)
public class Demo02 extends GenericServlet {
	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("Demo02...service()方法");
	}
}
3.利用模板设计模式
直接继承HttpServlet
public class Demo03 extends HttpServlet {
	//重写doGet和doPost方法
	//注意:从浏览器发送的请求都是Get请求
	//注意:重写完之后 不要调用父类的doGet方法
	//否则一样会发送错误出来
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("doGet");
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//两种请求公用一个处理方式
		doGet(req, resp);
	}
}

如何配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- xml文件的版本号和编码格式 -->
<!-- 表示的是该xml文件的头 显示下面什么能写 -->
<!-- 还建议你标签的书写顺序 -->
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <!-- 工程的名字 -->
  <display-name>sh-web-01</display-name>
  
  <!-- 创建一个serlvet -->
  <servlet>
  	<!-- 给创建的servlet起个对象名 -->
  	<servlet-name>demo01</servlet-name>
  	<!-- 设置servlet使用哪个类创建对象 -->
  	<servlet-class>com.lanou3g.Demo01</servlet-class>
  	<!-- 配置Servlet创建的优先级 数越小 优先级越高-->
  	<!-- 加上这个设置 服务器启时就会创建该servlet -->
  	<load-on-startup>5</load-on-startup>
  	
  </servlet>
  <!-- 设置servlet的映射(访问地址) -->
  <servlet-mapping>
  <!-- 给哪一个servlet对象配置访问地址 -->
  	<servlet-name>demo01</servlet-name>
  	<!-- 设置访问地址 http://localhost:8080/sh-web-01/demo01-->
  	<!-- /表示的项目名后面的斜杠 -->
  	<url-pattern>/demo01</url-pattern>
  </servlet-mapping>
  <servlet>
  	<servlet-name>demo02</servlet-name>
  	<servlet-class>com.lanou3g.Demo02</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>demo02</servlet-name>
  	<url-pattern>/demo02</url-pattern>
  </servlet-mapping>
  <servlet>
  	<servlet-name>demo03</servlet-name>
  	<servlet-class>com.lanou3g.Demo03</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>demo03</servlet-name>
  	<url-pattern>/demo03</url-pattern>
  </servlet-mapping>
    <servlet>
  	<servlet-name>demo04</servlet-name>
  	<servlet-class>com.lanou3g.Demo04</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>demo04</servlet-name>
  	<!-- 利用通配符设置路径 -->
  	<!-- 
  	1./demo04配置的是绝对路径
  	2.*.后缀名  *.action
  	3./*
  	4. / 系统使用的默认配置方式 不是给你用的
  	注意:凡是通过服务器访问的资源 都是servlet
  	注意:23不能一起使用
  	
  	匹配路径的优先级
  	绝对匹配>  /*  > *.后缀
  	 -->
  	<url-pattern>/*</url-pattern>
  </servlet-mapping>
  <!-- 一个servlet配置多个访问路径 -->
    <servlet-mapping>
  	<servlet-name>demo04</servlet-name>
  	<url-pattern>/demo9999</url-pattern>
  </servlet-mapping>
  <!-- 设置访问页面的 直接访问工程路径 出现的页面 -->
  <welcome-file-list>
    <welcome-file>HelloWorld.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>
</web-app>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值