SSM三层架构的初步使用《笔记内容四》(二)

简介: SSM三层架构的初步使用《笔记内容四》(二)
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生信息对话列表</title>
<style type="text/css">
*{
background: linear-gradient(to right,red,pink,blue);
font-size:30px;
font-weight: bold;
}
</style>
</head>
<body>
  <!-- 使用表格展示从数据库中获取的所有学生信息 -->
  <div align="center">
    <table border="2" style="width: 800px;text-align: center;border-collapse: collapse;">
      <caption>学生信息列表</caption>
      <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>性别</th>
      </tr>
      <c:forEach items="${students}" var="stu">
        <tr>
          <td>${stu.id}</td>
          <td>${stu.name}</td>
          <td>${stu.age}</td>
          <td>${stu.sex}</td>
        </tr>
      </c:forEach>
    </table>
  </div>
<h3 style="color:white; background: black;">
MVC全名是Model View Controller,<br>
@@1模型(model)<br>
@@2-视图(view)<br>
@@3-控制器(controller)的缩写,<br>
一种软件设计典范,<br>
用一种业务逻辑、数据、界面显示分离的方法组织代码,<br>
将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,<br>
不需要重新编写业务逻辑。<br>
MVC被独特的发展起来用于映射传统<br>
的输入、处理和输出功能在一个逻辑<br>
的图形化用户界面的结构中。<br>
</h3>
</body>
</html>
package com.student.controller;
import java.io.IOException;
import java.util.List;
import java.util.Map;
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 com.student.service.IStudentService;
import com.student.service.StudentServiceImp;
/**
 * Servlet implementation class HomeServlet
 */
@WebServlet("/HomeServlet")
public class HomeServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HomeServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //将浏览器的任务接收,发给业务逻辑层处理
    IStudentService service=new StudentServiceImp();
    List<Map<String, Object>> oList=service.getStudents();
    //将从数据库中查询出来的数据存储至request
    request.setAttribute("students", oList);
    //请求转发跳转页面
    request.getRequestDispatcher("index.jsp").forward(request, response);
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}

剩下的项目完整代码在下面。

package com.DengLu.And.Zhu.Ce;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class ServlectDengLuLogic
 */
@WebServlet("/ServlectDengLuLogic")
public class ServlectDengLuLogic extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServlectDengLuLogic() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    /**
     * do--post
     */
     response.setContentType("text/html");
     response.setCharacterEncoding("UTF-8");
    ServletContext  sc=getServletContext();
    //获取web.xml文件中的镜头数据
    String a=sc.getInitParameter("QQ");
    String b=sc.getInitParameter("PSD");
    String c=sc.getInitParameter("USER");
    System.out.println(a+"@@@@@@@@"+b);
     response.getWriter().append("ServletB获得静态数据用来访问web.xml"+a);
     String aa=request.getParameter("qq");
     String bb=request.getParameter("psd");
     String cc=request.getParameter("user");
      //不区分大小写equalsIgnoreCase(aa)
      if(a.equalsIgnoreCase(aa)&&b.equalsIgnoreCase(bb)&&c.equalsIgnoreCase(cc)) {
        //重定向跳转页面
        System.out.println("登录成功跳转到2021登录成功");
        response.sendRedirect("HomeServlet");
        /* response.setHeader("refresh","60;URL=Register.jsp"); */
      }else {
        System.out.println("登录失败五秒后返回Register.jsp");
        /* response.sendRedirect("Register.jsp"); */
        response.setHeader("refresh","3;URL=Register.jsp");
      }
  }
}
package com.DengLu.And.Zhu.Ce;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class ServlectDengLuLose
 */
@WebServlet("/DengLuChengGong")
public class ServlectDengLuLose extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServlectDengLuLose() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html");
    response.setCharacterEncoding("utf-8");
    PrintWriter pw = response.getWriter();
    pw.append("60秒后回到index.jsp");
    response.setHeader("refresh","60;URL=index.jsp");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}


package com.DengLu.And.Zhu.Ce;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class ServlectDengLuLogic
 */
@WebServlet("/ServlectZhuCe")
public class ServlectZhuCe extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServlectZhuCe() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    /**
     * do--post
     */
     response.setContentType("text/html");
     response.setCharacterEncoding("UTF-8");
    ServletContext  sc=getServletContext();
    //获取web.xml文件中的镜头数据
    String a=sc.getInitParameter("USER");
    String b=sc.getInitParameter("QQ");
    String c=sc.getInitParameter("PSD");
    String d=sc.getInitParameter("SJ");
    String  e=sc.getInitParameter("HOME");
    System.out.println(a+"@@@"+b+"@@@"+c+"@@@"+d+"@@@"+e);
     response.getWriter().append("<h1>ServlectZhuCe获得静态数据用来访问web.xml</h1>");
     String aa=request.getParameter("user");
     String bb=request.getParameter("qq");
     String  cc=request.getParameter("psd");
     String dd=request.getParameter("sj");
     String ee=request.getParameter("home");
      //不区分大小写equalsIgnoreCase(aa)
      if(a.equalsIgnoreCase(aa)&&b.equalsIgnoreCase(bb)&&c.equalsIgnoreCase(cc)&&d.equalsIgnoreCase(dd)&&e.equalsIgnoreCase(ee)) {
        //重定向跳转页面
        System.out.println("注册成功跳转到2021登录成功");
        response.sendRedirect("Login.jsp");
        /* response.setHeader("refresh","60;URL=Register.jsp"); */
      }else {
        System.out.println("注册失败五秒后返回Register.jsp");
        /* response.sendRedirect("Register.jsp"); */
        response.setHeader("refresh","8;URL=ZhuCeLose");
      }
  }
}


package com.DengLu.And.Zhu.Ce;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class ServlectDengLuLose
 */
@WebServlet("/ZhuCeLose")
public class ZhuCeLose extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ZhuCeLose() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html");
    response.setHeader("refresh", "5");
    //设置要求浏览器 
    /* response.sendRedirect("Servlet1"); */
    int i=(int)(Math.random()*900000+100000);
    int a=(int)(Math.random()*9000+1000);
    int c=(int)(Math.random()*900+100);
    System.out.println("@@@@"+(new Random().nextInt(900000)+100000));
    /*
     * 设置随机
     */
    System.out.println(new Random().nextInt(100));
    System.out.println(Math.random());
    PrintWriter  pw =response.getWriter();
    pw.print("你的支付宝到账1000万元,需要的码号为:<h1 style='color:red ;background-color:green'>"+i+"</h1>,打死也不说  \"<hr>\";");
    pw.print("你的QQ到账1000万元,需要的码号为:<h2 style='color:red ;background-color:green'>"+c+"</h2>,打死也不说   \"<hr>\";");
    pw.print("你的微信到账1000万元,需要的码号为:<span style='color:green'>"+a+"</span>,打死也不说"); 
    pw.print("你的手机支付宝到账1000万<span style='color :red'>"+i+"</span>");
    pw.append("<style>");
    pw.append(" *{\r\n" + 
        "            margin: 0px;\r\n" + 
        "            padding: 0px;\r\n" + 
        "            background: white;\r\n" + 
        "            font-size: 30px;\r\n" + 
        "            font-weight: bold;\r\n" + 
        "            text-shadow: 1px 1px 1px red;\r\n" + 
        "\r\n" + 
        "        }");
    pw.append("</style>");
    pw.append("<h1 align ='center'>2021你年垮2022年QQ登陆失败的界面</h1>");
    pw.append("注册界面失败请重新注册");
    response.setHeader("refresh","5;URL=Register.jsp");
    pw.append("<h2 align ='center'><a href='Register.jsp'>点击这里返回注册界面进行重新注册</a></h2>");
    pw.append("如果用户一分钟后没有任何操作则在60秒后调到index.jsp文件");
    response.setHeader("refresh","30;URL=index.jsp");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}


package com.Filter;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class MyFilter4 implements Filter{
  public MyFilter4() {
    // TODO Auto-generated constructor
    System.out.println("我创建了第一个MyFilter过滤器");
  }
  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
      throws IOException, ServletException {
      response.setContentType("text/html");
      response.setCharacterEncoding("UTF-8"); 
      System.out.println("我是myfilter开始拦截请求地址哦哦");
  }
  @Override
  public void init(FilterConfig config) throws ServletException {
    // TODO Auto-generated method stub
    System.out.println("FilterConfig用来加载初始化数据");
  }
  @Override
  public void destroy() {
    System.out.println("Filter所有方法运行完毕后销毁过滤器");
  }
}


package com.Listener;
/**
 * 第三类接口
 */
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
public class Listener  implements   HttpSessionBindingListener {
    private int id;
      private String username;
      private String password;
      public Listener() {
      // TODO Auto-generated constructor stub
    }
  public Listener(int id, String username, String password) {
      super();
      this.id = id;
      this.username = username;
      this.password = password;
    }
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getUsername() {
    return username;
  }
  public void setUsername(String username) {
    this.username = username;
  }
  public String getPassword() {
    return password;
  }
  public void setPassword(String password) {
    this.password = password;
  }
  @Override
  public String toString() {
    return "Listener [id=" + id + ", username=" + username + ", password=" + password + ", getId()=" + getId()
        + ", getUsername()=" + getUsername() + ", getPassword()=" + getPassword() + ", getClass()=" + getClass()
        + ", hashCode()=" + hashCode() + ", toString()=" + super.toString() + "]";
  }
  @Override
  public void valueBound(HttpSessionBindingEvent event) {
    // TODO Auto-generated method stub
     System.out.println("HttpSession 与 Listener绑定");
    HttpSessionBindingListener.super.valueBound(event);
  }
  @Override
  public void valueUnbound(HttpSessionBindingEvent event) {
    // TODO Auto-generated method stub
     System.out.println("HttpSession 与 Listener解绑绑");
    HttpSessionBindingListener.super.valueUnbound(event);
  }
}


package com.Servlect;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class HomeServlect2
 */
@WebServlet("/HomeServlect2")
public class HomeServlect2 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HomeServlect2() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    //response.getWriter().append("Served at: ").append(request.getContextPath());
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    PrintWriter pw =response.getWriter();
    pw.append("<h1 style='color:red'>登录成功</h1>");
    pw.append("<h2>本案例运用的对象\r\n" + 
        "<hr>\r\n" + 
        "ServletConfig:对象获得静态数据\r\n" + 
        "<hr>\r\n" + 
        "ServletContext对象:获取共享静态数据,获取共享动态数据,获取共享文件数据.\r\n" + 
        "<hr>\r\n" + 
        "HttpServletResponse 对象HttpServlet调用HttpResponse的有关方法,生成响应数据\r\n" + 
        "<hr>\r\n" + 
        "HttpServletRequest对象:HttpServlet调用HttpResponse的有关方法,生成响应数据,用于服务器上接收浏览器发送过来的数据信息\r\n" + 
        "<hr>\r\n" + 
        "Cookie对象,对象Session对象。程序把每个用户的数据以Cookie/Session的形式写给用户各自的浏览器。\r\n" + 
        "<hr>\r\n" + 
        "Filter:过滤器,阻止非法网站的访问。\r\n" + 
        "<hr>\r\n" + 
        "Listener:\r\n" + 
        "实现了特定接口的类为监听器,用来监听另一个Java类的方法调用或者属性改变;** 当被监听的对象发生了方法调用或者属性改变后,\r\n" + 
        "监听器的对应方法就会立即执行.\r\n" + 
        "<hr>\r\n" + 
        "九大内置对象的核心表格\r\n" + 
        "<hr>\r\n" + 
        "out         JspWriter    将文本信息输出浏览器\r\n" + 
        "<hr>\r\n" + 
        "request  HttpServletRequest   获得浏览器发送来的数据\r\n" + 
        "<hr>\r\n" + 
        "respone   HttpServletRequest   回复浏览器请求\r\n" + 
        "<hr>\r\n" + 
        "seesion  HttpSeesion           在不换浏览器放信息\r\n" + 
        "<hr>    \r\n" + 
        "exception  Throwable    异常报错\r\n" + 
        "<hr>\r\n" + 
        "page Servlect(this)    jsp翻译出来类的对象\r\n" + 
        "<hr>\r\n" + 
        "config     ServlectConfig            静态数据\r\n" + 
        "<hr>\r\n" + 
        "application  ServlectContext    共享数据\r\n" + 
        "<hr>\r\n" + 
        "pageContext   PageContextjsp       管理者引出对象\r\n" + 
        "<hr>\r\n" + 
        "seesion   浏览器不切\r\n" + 
        "application  服务器不关闭\r\n" + 
        "request:请求转发跳转页面的情况,只能两个页面共享数据\r\n" + 
        "pageContext:该对象中只能页面自己用\r\n" + 
        "才能用setAttribute的方法\r\n" + 
        "将四作用域排序\r\n" + 
        "pageContext request seesion application \r\n" + 
        "</h2>");
    pw.append("<h1><a href='index.jsp'>返回主界面</a></h1>");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}


package com.Servlect;
/**
 * 这一个类让我们去了解Servlect的周期
 */
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;
public class ServlectOne  implements Servlet{
  public ServlectOne() {
    // TODO Auto-generated constructor stub
    System.out.println("@1 Servlec方法的构造方法");
  }
  @Override
  public void destroy() {
  System.out.println("@2 Servlect方法的销毁");
  }
  @Override
  public ServletConfig getServletConfig() {
    // TODO Auto-generated method stub
    System.out.println("@ 3Servlect方法加载静态数据");
    return null;
  }
  @Override
  public String getServletInfo() {
    // TODO Auto-generated method stub
    System.out.println("@ 4 Servlect的getServletInfo方法");
    return null;
  }
  @Override
  public void init(ServletConfig config) throws ServletException {
    // 获取静态数据的对象
    String a=config.getInitParameter("SFZ");
      System.out.println(a);
    System.out.println("@5 Servlecto的init方法");
    System.out.println("获取静态数据的对象config");
    //动态数据的获取
  }
  @Override
  public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
    // TODO Auto-generated method stub
    System.out.println("@5 Servlecto的servlect方法");
  }
}


package com.Servlect;
/**
 * 这一个类让我们去了解Servlect的周期
 */
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;
public class ServlectOne  implements Servlet{
  public ServlectOne() {
    // TODO Auto-generated constructor stub
    System.out.println("@1 Servlec方法的构造方法");
  }
  @Override
  public void destroy() {
  System.out.println("@2 Servlect方法的销毁");
  }
  @Override
  public ServletConfig getServletConfig() {
    // TODO Auto-generated method stub
    System.out.println("@ 3Servlect方法加载静态数据");
    return null;
  }
  @Override
  public String getServletInfo() {
    // TODO Auto-generated method stub
    System.out.println("@ 4 Servlect的getServletInfo方法");
    return null;
  }
  @Override
  public void init(ServletConfig config) throws ServletException {
    // 获取静态数据的对象
    String a=config.getInitParameter("SFZ");
      System.out.println(a);
    System.out.println("@5 Servlecto的init方法");
    System.out.println("获取静态数据的对象config");
    //动态数据的获取
  }
  @Override
  public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
    // TODO Auto-generated method stub
    System.out.println("@5 Servlecto的servlect方法");
  }
}


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
* {
    margin: 0;
    padding: 0;
   background: white;
   background: linear-gradient(to right,red,pink,blue);
}
li {
    list-style: none;
}
left {
    width: 480px;
    float: left;
}
.header {
    width: 1040px;
    height: 100px;
    float: right;
}
.top {
    float:  right;
}
.main {
    width: 500px;
    margin: 0 auto;
}
.one h1 {
    font-size: 46px;
    font-weight: 400;
    margin-bottom: 20px;
}
.two {
    font-size: 20px;
    color: #333333;
    margin-bottom: 64px;
    float: left;
}
.there {
    float: right;
    margin-bottom: 64px;
}
.there a {
    font-size: 28px;
    text-decoration: none;
    color: #359eff;
}
.there a:hover {
    color: #094683;
}
.input-outer input {
    height: 50px;
    width: 438px;
    margin-bottom: 40px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    color: #c1c1c1;
    font-size: 20px;
}
.input-outer span,
.input-phone span {
    font-size: 25px;
    text-align: center;
    line-height: 50px;
    color: #333333;
}
.input-type select {
  margin: auto;
    height: 50px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    font-size: 20px;
    float: left;
}
.input-phone input {
    height: 50px;
    width: 268px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    font-size: 20px;
    margin-left: 20px;
}
.input-qq input {
    height: 50px;
    width: 268px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    font-size: 20px;
    margin-left: 20px;
}
.input-home input {
    height: 50px;
    width: 260px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    font-size: 20px;
    margin-left: 20px;
}
.input-sex  input{
    height: 50px;
    width: 268px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    font-size: 20px;
    margin-left: 20px;
}
.six p {
    color: #c1c1c1;
    font-size: 14px;
}
.sub input {
  align-content: center;
  text-align: center;
    height: 50px;
    width: 440px;
    margin: 40px 0;
    font-size: 20px;
    color: #ffffff;
    background-color: #3588ff;
    border: 1px solid #c1c1c1;
    border-radius: 10px;
}
.type-radio span {
  align-content: center;
  text-align: center;
    font-size: 14px;
    color: #c1c1c1;
}
.footer {
  align-content: center;
  text-align: center;
    margin: 40px 0;
    text-align: center;
    color: #c1c1c1;
    }
h1{
 /* text-shadow: 5px 5px 5px red; */
 color: red;
}
</style>
<title>注册页面</title>
</head>
<body>
<h1 style="background: aquamarine; color: red; font-weight: 900; text-align: center;">欢迎来到2021年个人学生注册界面</h1>
            <article style="text-align: center; align-content: center; text-align: center;">
             <form action="ServlectZhuCe" method="post">
             <div class="input-outer">
                  <h1>用户名:</h1><br><input type="text" name="user" id="text" maxlength="8">
             </div>
         <div class="input-sex">
             <h2> 输入性别</h2>
              <h2>男:</h2><input type="radio" name="sex" id="" value="1" checked="checked"/>
      <h2>女:</h2><input type="radio" name="sex" id="" value="0" checked="checked" /> 
             </div> 
             <div class="input-qq">
                     <h1>QQ号:</h1><br><input type="text" name="qq" maxlength="11" minlength="11">
                 </div>
             <div class="input-outer">
                  <h1>密码 :</h1><br><input type="password" name="psd" id="password" maxlength="16">
             </div>
                 <div class="input-phone">
                     <h1>手机号:</h1><br><input type="text"  name="sj"   maxlength="11" minlength="11" >
                 </div>
                  <div class="input-home">
                     <h1>家庭地址:</h1><br><input type="text"  name="home"   maxlength="11" minlength="11" >
                 </div>
                 <div class="six">
                     <p>可通过手机号找回密码</p>
                 </div>
             </div> 
             <div class="sub">
                 <input type="submit" value="立即注册">
             </div>
             </form>
             </article>
             <div class="type-radio">
                 <input type="radio" checked><span style="text-align: center;">同意开通QQ空间</span>
                 <br>
                 <input type="radio" checked><span style="text-align: center;">我已阅读并同意相关服务条款和隐私政策开始进行登录QQ页面</span>
             </div>
            <div>
              <footer>
                <h1>这是QQ的注册页面</h1>
              </footer>
            </div>
         </div>
     </div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
* {
    margin: 0;
    padding: 0;
   background: white;
   background: linear-gradient(to right,red,pink,blue);
}
li {
    list-style: none;
}
left {
    width: 480px;
    float: left;
}
.header {
    width: 1040px;
    height: 100px;
    float: right;
}
.top {
    float:  right;
}
.main {
    width: 500px;
    margin: 0 auto;
}
.one h1 {
    font-size: 46px;
    font-weight: 400;
    margin-bottom: 20px;
}
.two {
    font-size: 20px;
    color: #333333;
    margin-bottom: 64px;
    float: left;
}
.there {
    float: right;
    margin-bottom: 64px;
}
.there a {
    font-size: 28px;
    text-decoration: none;
    color: #359eff;
}
.there a:hover {
    color: #094683;
}
.input-outer input {
    height: 50px;
    width: 438px;
    margin-bottom: 40px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    color: #c1c1c1;
    font-size: 20px;
}
.input-outer span,
.input-phone span {
    font-size: 25px;
    text-align: center;
    line-height: 50px;
    color: #333333;
}
.input-type select {
  margin: auto;
    height: 50px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    font-size: 20px;
    float: left;
}
.input-phone input {
    height: 50px;
    width: 268px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    font-size: 20px;
    margin-left: 20px;
}
.input-qq input {
    height: 50px;
    width: 268px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    font-size: 20px;
    margin-left: 20px;
}
.input-home input {
    height: 50px;
    width: 260px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    font-size: 20px;
    margin-left: 20px;
}
.input-sex  input{
    height: 50px;
    width: 268px;
    border-radius: 10px;
    border: 1px solid #c1c1c1;
    font-size: 20px;
    margin-left: 20px;
}
.six p {
    color: #c1c1c1;
    font-size: 14px;
}
.sub input {
  align-content: center;
  text-align: center;
    height: 50px;
    width: 440px;
    margin: 40px 0;
    font-size: 20px;
    color: #ffffff;
    background-color: #3588ff;
    border: 1px solid #c1c1c1;
    border-radius: 10px;
}
.type-radio span {
  align-content: center;
  text-align: center;
    font-size: 14px;
    color: #c1c1c1;
}
.footer {
  align-content: center;
  text-align: center;
    margin: 40px 0;
    text-align: center;
    color: #c1c1c1;
    }
h1{
 /* text-shadow: 5px 5px 5px red; */
 color: red;
}
</style>
<title>注册页面</title>
</head>
<body>
<h1 style="background: aquamarine; color: red; font-weight: 900; text-align: center;">欢迎来到2021年个人学生注册界面</h1>
            <article style="text-align: center; align-content: center; text-align: center;">
             <form action="ServlectZhuCe" method="post">
             <div class="input-outer">
                  <h1>用户名:</h1><br><input type="text" name="user" id="text" maxlength="8">
             </div>
         <div class="input-sex">
             <h2> 输入性别</h2>
              <h2>男:</h2><input type="radio" name="sex" id="" value="1" checked="checked"/>
      <h2>女:</h2><input type="radio" name="sex" id="" value="0" checked="checked" /> 
             </div> 
             <div class="input-qq">
                     <h1>QQ号:</h1><br><input type="text" name="qq" maxlength="11" minlength="11">
                 </div>
             <div class="input-outer">
                  <h1>密码 :</h1><br><input type="password" name="psd" id="password" maxlength="16">
             </div>
                 <div class="input-phone">
                     <h1>手机号:</h1><br><input type="text"  name="sj"   maxlength="11" minlength="11" >
                 </div>
                  <div class="input-home">
                     <h1>家庭地址:</h1><br><input type="text"  name="home"   maxlength="11" minlength="11" >
                 </div>
                 <div class="six">
                     <p>可通过手机号找回密码</p>
                 </div>
             </div> 
             <div class="sub">
                 <input type="submit" value="立即注册">
             </div>
             </form>
             </article>
             <div class="type-radio">
                 <input type="radio" checked><span style="text-align: center;">同意开通QQ空间</span>
                 <br>
                 <input type="radio" checked><span style="text-align: center;">我已阅读并同意相关服务条款和隐私政策开始进行登录QQ页面</span>
             </div>
            <div>
              <footer>
                <h1>这是QQ的注册页面</h1>
              </footer>
            </div>
         </div>
     </div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
*{
background: linear-gradient(to right,red,pink,blue);
}
</style>
</head>
<body>
<h1 style="background: black; color: red; text-align: center;">欢迎来到学生信息管理注册登录界面</h1>
<a href="Register.jsp"><h1>点击这里进行学生信息注册页面</h1></a>
<h3 style="color:white; background: black;">
MVC全名是Model View Controller,<br>
@@1模型(model)<br>
@@2-视图(view)<br>
@@3-控制器(controller)的缩写,<br>
一种软件设计典范,<br>
用一种业务逻辑、数据、界面显示分离的方法组织代码,<br>
将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,<br>
不需要重新编写业务逻辑。<br>
MVC被独特的发展起来用于映射传统<br>
的输入、处理和输出功能在一个逻辑<br>
的图形化用户界面的结构中。<br>
</h3>
</body>
</html>

这是整个项目的代码。

这下面的运行图自己思考。


相关文章
|
6月前
|
前端开发 Java 数据库连接
SSM框架笔记源码剖析
SSM,是Spring+Spring MVC+MyBatis的缩写,是继SSH之后,目前比较主流的JavaEE企业级框架,适用于搭建各种大型的企业级应用系统。Spring依赖注人DI来管理各层的组件,使用AOP (面向切面编程)管理事务、日志、权限等。Spring MVC代表Model(模型)、View(视图).Contoller(控制)接收外部请求并进行分发和处理。MyBatis是基于JDBC的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。
73 0
|
5月前
|
Java 编译器 Maven
使用intellij idea搭建SSM架构的maven项目 详细
使用intellij idea搭建SSM架构的maven项目 详细
98 4
|
2月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
432 37
|
2月前
|
机器学习/深度学习 存储 算法
Transformer、RNN和SSM的相似性探究:揭示看似不相关的LLM架构之间的联系
通过探索大语言模型(LLM)架构之间的潜在联系,我们可能开辟新途径,促进不同模型间的知识交流并提高整体效率。尽管Transformer仍是主流,但Mamba等线性循环神经网络(RNN)和状态空间模型(SSM)展现出巨大潜力。近期研究揭示了Transformer、RNN、SSM和矩阵混合器之间的深层联系,为跨架构的思想迁移提供了可能。本文深入探讨了这些架构间的相似性和差异,包括Transformer与RNN的关系、状态空间模型在自注意力机制中的隐含作用以及Mamba在特定条件下的重写方式。
130 7
Transformer、RNN和SSM的相似性探究:揭示看似不相关的LLM架构之间的联系
|
2月前
|
前端开发 Java 数据库连接
【Java笔记+踩坑】SSM整合
统一结果封装、统一异常处理、整合图书案例、拦截器
【Java笔记+踩坑】SSM整合
|
5月前
|
缓存 NoSQL Java
在 SSM 架构(Spring + SpringMVC + MyBatis)中,可以通过 Spring 的注解式缓存来实现 Redis 缓存功能
【6月更文挑战第18天】在SSM(Spring+SpringMVC+MyBatis)中集成Redis缓存,涉及以下步骤:添加Spring Boot的`spring-boot-starter-data-redis`依赖;配置Redis连接池(如JedisPoolConfig)和连接工厂;在Service层使用`@Cacheable`注解标记缓存方法,指定缓存名和键生成策略;最后,在主配置类启用缓存注解。通过这些步骤,可以利用Spring的注解实现Redis缓存。
79 2
|
5月前
|
JSON JavaScript 前端开发
技术笔记:ssm异步上传图片
技术笔记:ssm异步上传图片
23 0
|
6月前
|
人工智能 自然语言处理 开发者
首个基于SSM-Transformer混合架构,开源商业大模型Jamba
【4月更文挑战第13天】AI模型部署与优化迎来新解决方案,ai21labs推出的SSM-Transformer混合架构大模型Jamba结合英伟达NVIDIA NIM服务。Jamba模型在自然语言处理上表现出色,开源特性促进AI技术普及,而NIM提供跨平台、高性能的部署支持。不过,技术门槛、资源需求及优化挑战仍需考虑。
121 6
首个基于SSM-Transformer混合架构,开源商业大模型Jamba
|
5月前
|
前端开发 JavaScript Java
计算机Java项目|基于SSM架构的网上书城系统
计算机Java项目|基于SSM架构的网上书城系统
|
5月前
|
Java Maven
使用intellij idea搭建SSM架构的maven项目 配置文件
使用intellij idea搭建SSM架构的maven项目 配置文件
45 0
下一篇
无影云桌面