第04讲:tomcat和servlet

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、网站发布

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

后台ServletLoginServlet.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

参考文献

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Tomcat