JAVA 2022.7.26课程总结(JAVAWEB)

一、搭建server服务器

解压缩tomcat文件,打开eclipse。

点击window-show view-other...,搜索servers,点击open,就打开了servers视图,显示没有实例,点击蓝字或者右键点击new,选择创建实例,选择apache,选择版本号(这时候用的是8.5)然后next,然后选择安装路径,点击选择解压缩的地址,选择到apache-tomcat-8.5.46即可,然后jre改成jdk,一定要选择一个jdk,然后finish。这样也就搭建好一个服务实例了。

二、创建web项目

左边空白处右键new-other...,搜索web,选择dynamic web project(动态web项目)-next,填写项目名(easyweb)-next-next ,最后一个generate web.xml(生成xml)选择生成 再点finish,这样就创建一个web项目,选择window-show view-other,搜索package,选择package explorer 打开,拖拽到左上角使用。

右键server服务窗口的tomcat服务器,点击add and remove-选择easyweb项目-finish,这样就实现服务器和项目的连接了

三、配置servlet

首先 创建servlet类继承httpservlet

//定义servlet 需要继承HttpServlet
public class HelloServlet extends HttpServlet{

第一种方法:使用@WebServlet注解做了一个映射,指向HelloServlet类

@WebServlet(urlPatterns = "/hello",loadOnStartup = 1)
//定义servlet 需要继承HttpServlet
public class HelloServlet extends HttpServlet{

第二种方法:在项目的主web.xml文件下,进行配置,最后也是指向HelloServlet类

  <servlet>
  <!-- 给servlet起一个名字  -->
	<servlet-name>helloServlet</servlet-name>
	<!--指定servlet的全名  -->
	<servlet-class>com.easy.servlet.HelloServlet</servlet-class>  
  </servlet>
  
  <servlet-mapping>
  	 <!-- 给这个servlet做一个映射  -->
	<servlet-name>helloServlet</servlet-name>
	<url-pattern>/h</url-pattern>
  </servlet-mapping>

另外,在web.xml下

  <!-- 当通过浏览器直接访问项目名称,而没有指定具体的文件或者资源时,会从以下列表中选择第一个找到的文件进行反馈 -->
    <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>

四、servlet方法 doget dopost service方法


     * 当浏览器通过get请求方式访问该servlet会执行doGet方法
     * 怎样访问到servlet? 使用@WebServlet注解做了一个映射urlPattern="/hello"
     * 浏览器访问到urlPatterns后指定的路径就访问到当前servlet了

	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		/**
		 * request 请求对象,将浏览器请求服务器的数据包装成request对象
		 * 
		 * response 是服务器响应浏览器请求的回应数据的包装对象
		 */
		resp.getWriter().write("doget method");
	}

* 通过不同的请求方式访问到不同的方法

	protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
			throws ServletException, IOException {
		doGet(req,resp);
	}
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
    }

4.1 前端输入账号密码,后端获取信息:

前端:

    <form action="login" method='post'>
        <div class='loginitem'>
        <label>账号</label><input type='text' name="username">
        </div>
        <div class='loginitem'>
        <label>密码</label><input type="password" name='userpass'> 
        </div>
        <div class='butbox'>
        <input type="submit" value="登录">
        </div>
    </form>

后端:

        /**
         * 获取前端发送的参数
         */
        String username=req.getParameter("username");
        String userpass=req.getParameter("userpass"); 
        resp.getWriter().write("service method "+username+"----"+userpass);

4.2 servlet重定向 转发

//         通过servlet跳转页面:重定向  转发
//          重定向,可以定位到外部项目,浏览器发送了两次请求
        resp.sendRedirect("https://www.baidu.com");
//        转发,只能在本项目内转发,浏览器发送了一个请求,浏览器请求的地址不会发生变化
//        可以访问WEB-INF下受保护的资源
        req.getRequestDispatcher("WEB-INF/other.jsp").forward(req, resp);

	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {

//		  重定向,可以定位到外部项目,浏览器发送了两次请求
		resp.sendRedirect("https://www.baidu.com");

//		转发,只能在本项目内转发,浏览器发送了一个请求,浏览器请求的地址不会发生变化
//		可以访问WEB-INF下受保护的资源
		req.getRequestDispatcher("WEB-INF/other.jsp").forward(req, resp);
}

五、servlet生命周期


    servlet生命周期
     1.默认情况下,第一次访问servlet时实例化对象,并且立即执行init方法进行初始化,可以使用loadOnStartup来控制servlet实例化对象的时机,取值越小,优先级越高(优先实例化对象)
      2.请求访问servlet,优先执行service方法,service中根据请求方式不同, 分别执行doget和dopost方法
      3.当服务器关闭时,会销毁servlet对象,执行destory方法

	@WebServlet(urlPatterns = "/hello",loadOnStartup = 1)

    public class HelloServlet extends HttpServlet{
    public HelloServlet() {
		System.out.println("----HelloServlet实例化对象-----");
	}
	public void init(ServletConfig config) throws ServletException {
		System.out.println("----HelloServlet初始化-----");
	}
	public void destroy() {
		System.out.println("----HelloServlet被销毁-----");
	}
    }


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值