我的第一个Servlet作业

Servlet教程第一课
Servlet = Server + Applet 即服务器加应用程序
是使用java语言编写的运行在服务器端上的小程序

Servlet的功能
1.使用Servlet收集来自网页表单的用户输入;
2.呈现来自数据库或者其他源的记录;
3.可以动态创建网页

Servlet 任务
1.读取客户端(浏览器)发送到显式的数据。包括网页上的html表单,或者是来自applet、自定义的HTTP客户端程序的表单。
2.读取客户端发送的隐式的HTTP请求数据,包括cookies、媒体类型和浏览器能够理解的压缩格式等。
3.处理数据并生成结果。可能需要访问数据库,执行RMI或CORBA调用,调用Web服务,或者直接计算出对应的响应。
4.发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
5.发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。

Servlet规范
Servlet规范包含3大技术:Servlet本身技术、Filter(过滤器)技术、Listener(监听器)技术
规范可以理解为接口,接口大多数需要实现。

作业
要求:
1.准备注册页面
2.后端的Servlet类
3.从前端客户端获取数据后,把数据再通过后端服务器传输到前端页面上。
一:
这是你需要在浏览器生成的画面

这是你需要在代码页写的代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!--页面标题-->
    <title>登录页面</title>
</head>
<body>
<form action="login">
<input type = "text" name = "username" placeholder = "手机/用户名/邮箱"> 
<br>
<input type = "password" name = "password" placeholder = "密码">
<br>
<input type = "submit" value = "登录">
<br>
</form>

</body>
</html>

表单:录入数据,把数据传输给后端服务器。
action:执行url动作,请求的资源路径。
input标记是form表单标记中一个高频使用标记,type=submit表达的是想把form表单中所有的数据打包成form形式提交给后端服务器。
如果type=butto那么该按钮仅表示一个简单的按钮,只具备鼠标点击的动作。

第一种:使用注解“@”的方式

package com.zhiyou100;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.ResponseCache;
@WebServlet("/login")
public class LoginServlet implements Servlet {

    // 提供服务的
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        // 转换成可支持http协议的类
        HttpServletRequest request=(HttpServletRequest) servletRequest;
        HttpServletResponse response=(HttpServletResponse) servletResponse;
        request.setCharacterEncoding("UTF-8");
        // 设置可以响应给浏览器客户端支持的中文文本信息
        response.setContentType("text/html;charset=UTF-8");
        // 设置可以接收带中文的文本信息   getParameter("参数名称") 如果是表单参数,填写name属性值
        // 凡是客户端提交的参数值,一般情况下该参数值的数据类型都是String
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //假定用户名是张三,密码是123456  && 短路与
        if(username.equals("张三")&& password.equals("123456")){
            // 就表明信息正确
            // 恭喜你登录成功!
            response.getWriter().write("恭喜你登录成功");

        }else{
            // 不正确 请重新输入
            response.getWriter().write("不正确 请重新输入");
        }



    }

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

    @Override
    public void destroy() {

    }

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
}

第二种
在这里插入图片描述
在web.xml中编辑代码,不使用注解方式

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
  
   
    <servlet>
        <servlet-name>login</servlet-name>
        <servlet-class>com.zhiyou100.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>


</web-app>
    配置url映射信息
    在url-pattern标记里填写的就是浏览器客户端请求的资源路径
    http://localhost:8080/day09/hello
    组成部分:网络协议://域名:(服务器名-》》备案(绑定ip+域名)):
    端口号(唯一)/部署在服务器上的虚拟目录/请求资源路径?name=张三&password=123456
    hello是请求的资源路径
    如果没有端口号,说明他用的端口号是80端口,80可以省略不写
    ?name=张三&password=123456 请求资源路径携带的请求参数,?是分割作用
    如果请求参数有多个的话,用“&”连接
    在servlet-class标记中,里面需要填写类(全路径:包名+类名)全限定类名
    注册


运行之后页面
在这里插入图片描述
这是默认页面
需要在day09之后添加自己写的部署在服务器上的虚拟目录
比如这一篇作业"login.html"
在这里插入图片描述
之后添加内容


版权声明:本文为zwh19990526原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。