Severlet

一、基本概念
1.1、WEB开发的相关知识
  WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
  Internet上供外界访问的Web资源分为:

静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。
动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
  静态web资源开发技术:Html
  常用动态web资源开发技术:JSP/Servlet、ASP、PHP等
  在Java中,动态web资源开发技术统称为Javaweb。


服务器
 * Tomcat服务器(黄猫) sun公司 开源的 免费的 轻量级服务器 公司常用的服务器
 * 注意:咱们写的java代码和前端html页面 全都是放到服务器上运行(服务器端开发是开发放到
 * 服务器上运行的代码而不是开发一个服务器出来)
 * 
 * JavaEE规范服务器的一套规则(类和接口)
 * jsp和servlet就是这套规范的一部分

tomcat服务器下文件夹(必须记住)*********
 * bin 存放编译指令的文件夹(开启关闭服务)
 * conf 存放tomcat自己的配置文件的
 * lib 存放tomcat以来的架包
 * logs 存放的是用户访问服务器的日志(查看错误)
 * temp 存放临时文件的
 * webapps 默认存放应用程序的文件夹(你的工程)
 * work 存放tomcat自己的工作文件
 *
 * -------------访问服务器上的资源
 * 访问网址:
 * http://IP地址:端口号/项目名称/访问的资源
 * 通过这个网址 查看tomcat服务是否启动
 * 访问的网址
 * URL 统一资源定位符
 * http://localhost:8080/test/HelloWord.html
 * /test/HelloWord.html URI 统一资源标示符
 * 
 * 工程被编译到服务器,实际上是把工程目录下的WebContent文件夹下的内容编译进去
 * META-INF 扩展应用程序的文件夹(暂时没用)
 * WEB-INF 存放的工程的所有资源(必须记住)**********
 * 		lib 存放工程使用的jar包(不用添加路径了 会自动编译到服务器上)
 * 		web.xml 工程的配置文件
 * 		classes 工程编译到服务器上出现的 里面保存的是 你工程中的类的.class文件
 * 		wtpwebapps与Eclipse关联后 工程存放的文件夹
 * 	注意:WEB-INF文件夹下存放的资源 是不能通过网址去访问的
 * 		
 * 4.关闭服务

 * Servlet(小服务程序) 是个java接口
 * 访问服务器 实际上访问的就是Servlet(容器 访问动态资源)
 * javax.servlet.Servlet 包下的
 * 注意:如果报错或提示不出来,修改或添加tomcat到你的工程中(右击-->properities-->library)
 * 
 * Servlet的生命周期方法
 * 实例化-->初始化-->服务方法-->销毁方法
 * Servlet只是第一次访问的时候创建一次,当你再次访问servlet时,不会创建新的servlet,只会重复调用服务方法service方法
 * 404 web.xml中配置信息对不对
 * 500 Demo01类找不到
 * 
 * 用户发出一个请求,系统如何能创建出对应的servlet出来?
 * 1.通过用户的请求的网址 会获取到项目的名称 /sh-web-01
 * 2.找到你对应的项目后 从项目中找到 该项目的web.xml文件
 * 3.从xml文件中 可以找到访问servlet的路径(/demo01)
 * 4.通过servlet的路径,找到用户要访问的哪一个servlet的名字(demo01)
 * 5.通过servlet的名字就能找到要创建的servlet属于哪个类
 * 6.系统就会通过反射创建该类的对象,然后走声明周期的四个方法
 创建servlet的第一种方式
 * 直接实现Servlet接口
 */
public class Demo01 implements 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方法被调用了");

	}

	//severlet的销毁方法
	//1.服务器关闭被调用
	//2.该应用程序被移除也会调用
	public void destroy() {
		System.out.println("destroy销毁方法被调用了");
	}

	//获取servlet配置信息的方法
	public ServletConfig getServletConfig() {

		return null;
	}
	//获取servlet的版本 作者等信息的吧方法
	public String getServletInfo() {

		return null;
	}

}

/*
 * 创建Servlet 方式2
 * 继承GenericServlet类
 * (利用缺省适配器方式 帮你简化代码 生命周期方法可以不写)
 */
public class Demo02 extends GenericServlet {

	@Override
	public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		System.out.println("Demo02....service方法");
		
	}

}

/*
 * 方式三:(****常用***)
 * 直接继承HttpServlet
 * 利用的是模板设计模式
 */
public class Demo03 extends HttpServlet{
	//重写doGet和doPost方法(常用的请求)
	//注意:从浏览器发送的请求都是get请求
	//注意:重写完之后,不要调用父类的方法,否则一样会发送错误出来
	@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);
	}
	

}
5.配置servlet访问地址
<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>
	



猜你喜欢

转载自blog.csdn.net/weixin_42120532/article/details/80751627