第04讲:tomcat和servlet

一、网站发布

1.1、为什么要用tomcat

网页开发好了,该如何发布呢?我们需要一款可以发布网站的服务器,tomcat就是一款非常优秀的服务器。

1.2、单独部署tomcat

在Windows系统上单独部署tomcat8

现场演示,使用步骤:
1、安装jdk,并且配置环境变量
2、将tomcat解压出来,并且修改配置文件(配置jdk路径)
3、将网页发布到tomcat服务器

1.3、在idea中使用tomcat

idea配置tomcat

Configure > Setting > Build,Execution,Deployment > Application Servers
在这里插入图片描述
在这里插入图片描述

IDEA创建JavaWeb应用

创建一个Maven项目,选择org.apache.maven.archetypes:maven-archetype-webapp项目
在这里插入图片描述
项目的名称和路径
在这里插入图片描述
选择本地安装的Maven路径(已经配好阿里云镜像的maven)
在这里插入图片描述
项目创建完成
在这里插入图片描述

在IDEA中发布web项目

点击Add Configuration按钮
在这里插入图片描述
添加一个新的配置项
在这里插入图片描述

选择刚刚配置的tomcat

在这里插入图片描述

点击Deployment,部署项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动tomcat

在这里插入图片描述

在这里插入图片描述

网页成功打开
在这里插入图片描述

二、切片1:登陆功能

2.1、导入:为什么要使用Servlet

Serlvet是以java技术为基础,运行于服务器端的应用程序组件。它处理请求信息,并将结果发送到客户端。Servlet的客户端可以提出请求并获得该请求的响应,客户端可以是任何Java程序、浏览器或设备。

Servlet的主要功能: 根据客户端请求动态返回整个HTML页面 可以与服务器上的其他资源进行通信,包括数据库、其他java应用程序以及使用其他语言编写的应用程序。 处理与多个web客户端的连接,接收来自多个web客户端输入的信息,并将结果发送到相应的web客户端。 响应对web客户端上applet的个别连接,并保持连接处理找开状态,允许在这个单一连接上进行多种数据传递。

2.2、原型图(axure)

用axure现场画(效果:)

图片.png

用户名或密码错误:

图片.png

用户名或密码正确:

图片.png

2.3、实现需求

2.3.1、需求分析

需求分解:
1、新建web项目
2、创建login.html页面
3、在login.jsp页面上添加登陆表单
4、创建LoginServlet,用于处理html页面发来的请求
5、在LoginServlet中处理业务逻辑,并响应最终结果

2.3.2、需求实现

前台页面:login.html

<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="LoginServlet" method="post">
        用户名:<input type="text" name="username"><br>
        密码:<input type="password" name="passwd"><br>
        <input type="submit" value="登录">
        <input type="reset" value="重置">
    </form>
</body>
</html>

在pom.xml中添加servlet、JSP、JSTL的依赖

    <!-- Servlet -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency><!--EL和JSTL-->
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

添加完成后,刷新maven

后台Servlet:LoginServlet.java

package manager;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;@WebServlet(name = "LoginServlet", value = "/LoginServlet")
public class LoginServlet extends HttpServlet {@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }@Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");
        resp.setHeader("content-type", "text/html;charset=utf-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter pw = resp.getWriter();String username = req.getParameter("username");
        String passwd = req.getParameter("passwd");
        if ("admin".equals(username) && "123".equals(passwd)) {
            pw.println("欢迎使用xxx管理系统");
        } else {
            pw.println("用户名或密码错误,请重试");
        }
​
        pw.close();
    }
}

2.4、知识点补充

2.4.1、Request对象

HttpServletRequest接口代表客户的请求(用来接收用户从页面上传过来的值)。容器在调用servlet的doGet和doPost方法时,会创建一个SttpServletRequest接口的实例,作为参数传给doGet和doPost 。

方法描述
Public String getParameter(String name)获得页面传过来的指定名称的参数值
public String[] getParameterValues(String name)获以指定名称参数的所有值数组。它适用于一个参数名对应多个值的情况,如页面表单中的复选框
public java.util.Map getParameterMap()返回所有参数的一个Map对象,其中key代表参数名,value代表参数值

案例:使用servlet获得表单数据

request对象获得用户提交的数据中如果有中文会乱码,需要设置request对象的编码格式:

方法描述
Public void setCharacterEncoding(String env)重写此请求正文中使用的字符编码的名称

2.4.2、Response对象

HttpServletResponse接口代表向客户端发送的响应。容器在调用servlet的doGet和doPost方法时,同样会创建一个HttpServletResponse接口的实例,作为参数传给doGet和doPost方法.

方法描述
public sendRedirect(String arg0)传递临时响应,响应的地址由location指定。

2.5、案例拓展

2.5.1、案例一

按图实现效果

实现用户注册功能,校验用户名是否存在

使用到的知识点

HTML表单控件、HTML、Servlet

参考代码
暂无

2.6、小结

现场提问

1、Servlet类需要继承自哪一个基类?
2、在Servlet中接收Get请求和Post请求的方法是哪两个?
3、在Servlet中接收和响应数据的对象是哪两个?
4、在Servlet中响应数据时向网页打印数据使用的是哪个对象?
5、在Servlet中如何防止乱码?
6、在Servlet中如何接收页面传递的参数?

三、课程小结

3.1、知识框架图

现场提问,用XMind现场总结,再次加深学生印象

图片.png

3.2、课后作业

需求定义

开发一个用户注册的页面

需求分解

需求分解:
1、在页面中添加标题
2、在页面中添加用户名、密码、重复密码、昵称的文本框
3、在页面中添加爱好复选框
4、在页面添加性别单选按钮
5、在页面添加学历下拉列表
6、在页面添加注册、重置按钮

原型设计

图片.png

参考文献

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于Servlet的生命周期,我可以给你一些信息:Servlet的生命周期由四个阶段组成:加载、初始化、服务和销毁。当Servlet第一次被载入容器时,容器将其加载到内存中,在加载阶段,容器会创建该Servlet的实例,并调用它的init()方法,该方法的主要作用是用来初始化Servlet,以及创建必要的资源,例如数据库链接。在执行完init()方法后,Servlet就处于就绪状态,可以接收客户端发送的请求,容器会调用service()方法来响应客户端的请求。当Servlet不再被使用时,容器会调用它的destroy()方法来销毁Servlet,以释放系统资源。 ### 回答2: Servlet的生命周期是指Servlet从被加载到服务器内存中开始,到被卸载出服务器内存为止的整个过程。Servlet的生命周期包括以下几个阶段: 1.加载阶段:当Web容器(如Tomcat)启动时,会加载配置文件,根据配置文件中的配置信息,实例化和初始化Servlet类。 2.初始化阶段:在Servlet被实例化后,会调用其init()方法进行初始化。在init()方法中,可以进行一些初始化操作,如读取配置文件、建立数据库连接等。 3.请求处理阶段:当有客户端请求访问Servlet时,Web容器会创建一个新的线程,使用Servlet实例对请求进行处理。在处理请求时,调用service()方法来完成相应的逻辑处理。service()方法会根据请求的类型(GET、POST等)调用相应的doXxx()方法来处理请求。 4.销毁阶段:当Web容器停止或重新部署应用时,会销毁之前加载的Servlet实例。在销毁时,会调用Servlet的destroy()方法,可以在该方法中释放资源,如关闭数据库连接、释放文件句柄等。 需要注意的是,Servlet实例在处理多个请求时可能会被多个线程同时访问,因此要注意线程安全的处理,如使用锁来保护共享资源的访问。 总结:Servlet的生命周期包括加载、初始化、请求处理和销毁四个阶段。熟悉Servlet的生命周期可以帮助我们更好地理解Servlet的工作原理,并能够针对不同的需求进行优化和改进。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值