Servlet

package com.atguigu.servlet;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
 * Servlet工作原理
 * Servlet生命周期
 * 构造器		         创建Servlet
 * 			        执行时机,客户端第一次发送请求触发
 *             执行次数,在整个生命周期中,只执行一次
 * init()      初始化
 * 			         执行时机,客户端第一次发送请求触发
 *             执行次数,在整个生命周期中,只执行一次
 * service()   处理请求
 *             执行时机,每次发送请求触发
 *             执行次数,在整个生命周期中,只执行n次(n>=1)
 * destroy()   销毁
 *             执行时机,关闭服务器时触发
 *             执行次数,在整个生命周期中,只执行一次
 *ServletConfig与ServletContext的区别
 *
 */
public class HelloServlet implements Servlet {
	
	private ServletConfig config;
	public HelloServlet(){
		System.out.println("this is 构造器");
	}
	@Override
	public void destroy() {
		System.out.println("this is destroy()");
	}

	@Override
	public ServletConfig getServletConfig() {
		
		return this.config;
	}

	@Override
	public String getServletInfo() {
		
		return null;
	}

	@Override
	public void init(ServletConfig config) throws ServletException {
		this.config=config;
		System.out.println("this is init()");

	}

	@Override
	public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
		System.out.println("this is service() HelloServlet!!!");
        /**
         * ServletConfig代表当前Servlet配置信息
         * 作用:
         * (1)获取Servlet名字,配置的名字
         */
		String servletName=config.getServletName();
		System.out.println("ServletName is:"+servletName);
		System.out.println("-----------");
		/**
		 *  (2)获取当前Serlvet初始化参数
         *  (3)获取ServletContext对象
		 */
		String uname = this.config.getInitParameter("username");
		System.out.println("uanme:"+uname);
		System.out.println("--------");
		/**
         * 获取ServletContext对象
         * 作用:1.获取当前Web应用程序的初始化参数
		 */
		ServletContext servletContext = this.config.getServletContext();
		ServletContext servletContext2 = request.getServletContext();
		System.out.println(servletContext);
		System.out.println(servletContext2);
		System.out.println("-----------------------------");
		String password = servletContext.getInitParameter("password");
		System.out.println("password:"+password);
		/**
		 * 2.获取真实路径
		 */
		System.out.println("--------------------------");
		String realPath = servletContext.getRealPath("/pages/index.html");
		System.out.println("realPath:"+realPath);
		/**
		 * 3.ServletContext是域对象
		 * 
		 */
	}

}


Web项目:Servlet-Test
web.xml
// 注册HelloServlet 目的:
1)HelloServlet路径告诉tomcat
2)url–>

 <context-param><!--当前Web应用程序的初始化参数-->
    <param-name>password</param-name>
    <param-value>123456</param-value>
  </context-param>
  
 <servlet><!--当前Servlet的配置-->
   		<servlet-name>HelloServlet</servlet-name>
   		<servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>
   		
   		<init-param>
     		 <param-name>username</param-name>
      		 <param-value>zhangsan</param-value>
   		 </init-param>	
</servlet>
<servlet-mapping>
   		<servlet-name>HelloServlet</servlet-name>
   		<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>

请求页面为
http://localhost/Servlet-Test/HelloServlet
执行结果为:
在这里插入图片描述

再次访问:
http://localhost/Servlet-Test/HelloServlet
在这里插入图片描述

Servlet最终实现方式:
index.html

<h1>GET提交</h1>
<form action="../HelloWorldServlet" method="get">
		用户名:<input type="text" name="username"/><br/>&emsp;:<input type="text" name="password"/> <br>
		<input type="submit" value="登录"/>
</form>
<hr>

<h1>POST提交</h1>
<form action="../HelloWorldServlet" method="post">
		用户名:<input type="text" name="username"/><br/>&emsp;:<input type="text" name="password"/> <br>
		<input type="submit" value="登录"/>
</form>

在这里插入图片描述

package com.atguigu.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloWorldServlet
 */
public class HelloWorldServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	/**
	 * Servlet最终的实现方式
	 * (1)HttpServlet
	 * (2)GenericServlet
	 *     作用:
	 *     1.getServletConfig()
	 *     2.getServletContext
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			System.out.println("this is doGet()");
			String username = request.getParameter("username");
			String password = request.getParameter("password");
			System.out.println(username);
			System.out.println(password);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			System.out.println("this is doPost()");
	}

}

执行结果:
zhangsan
123456

Servlet继承关系
在这里插入图片描述

<servlet><!--当前Servlet的配置-->
   		<servlet-name>HelloServlet</servlet-name>
   		<servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>
   		
   		<init-param>
     		 <param-name>username</param-name>
      		 <param-value>zhangsan</param-value>
   		 </init-param>	
</servlet>
<servlet-mapping>
   		<servlet-name>HelloServlet</servlet-name>
   		<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>

servlet-class如何获取
到对应的Servlet下,右键复制全路径名称,粘贴到web.xml的servlet-class的参数中
在这里插入图片描述新建Servlet文件
在这里插入图片描述在这里插入图片描述在这里插入图片描述

eclipse中如何导入源码?

在Eclipse编程中,我们通过导入jar或库来使用已经封装好的类和接口,这样可以提高编程的效率和代码的质量。但有时候,我们想了解某个方法和接口是如何实现的,就需要分析源码;而一般我们安装的Eclipse是没有导入源码的,如果查看会出现下图的现象。

图1在这里插入图片描述
1.打开红框 1,弹出红圈2选择界面;选择红框2选项,最后选择红框3进入图3界面。

图2
在这里插入图片描述
2. 打开红框中的文件夹,进入图4界面。

图3
在这里插入图片描述
3.选择红框中的源码压缩包,进入图5界面。

图4
在这里插入图片描述
5.最后点击红框中的OK按钮,出现图6,即导入源码成功!

图5
在这里插入图片描述
7.导入源码成功界面。(如下图)

图6在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值