输入名字密码之后点击注册出现如下界面

输入名字密码之后点击注册出现如下界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
 <title>用户注册</title>
 <link href="style/common.css" type="text/css" rel="stylesheet">
  <link href="style/add.css" type="text/css" rel="stylesheet">
  <link rel="stylesheet" href="style/login.css">
 <script type="text/javascript">
  function validate_form(){
   // 获得用户名的值
   var username = document.getElementById("username").value;
   if(username == null || username==""){
    alert("用户名不能为空");
    return false;
   }
   // 获得密码的值
   var password = document.getElementById("password").value;
   if(password == null || password==""){
    alert("密码不能为空");
    return false;
   }
   // 获得确认密码的值
   var repassword = document.getElementById("repassword").value;
   if(repassword != password){
    alert("两次密码输入不一致");
    return false;
   }
   return true;
  }
 </script>
</head>
<body>
<%@ include file="header.jsp" %>

<div class="content">
  <div class="center">
    <div class="center-login">
      <div class="login-banner">
       <a href="#"><img src="image/login_banner.png" alt=""></a>
     </div>
     <div class="user-login">
       <div class="user-box">
         <div class="user-title">
           <p>用户注册</p>
         </div>
         <form id="regForm" enctype="multipart/form-data" onsubmit="return validate_form()" class="login-table" action="${pageContext.request.contextPath }/RegistServlet" method="post">
          <div class="login-left">
            <label class="username">用户名&nbsp&nbsp&nbsp&nbsp</label>
            <input type="text" id="username" class="yhmiput" name="username">
          </div>
          <div class="login-left">
            <label class="username">密码&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp</label>
            <input type="password" id="password" class="yhmiput" name="password">
          </div>
    <div class="login-left">
            <label class="username">确认密码</label>
            <input type="password" id="repassword" class="yhmiput" name="repassword">
          </div>
    <div class="login-left">
            <label class="username">上传头像</label>
            <input type="file" class="yhmiput" name="file">
          </div>
    <%-- <div class="login-left">
            <label class="username">验证码&nbsp&nbsp&nbsp&nbsp</label>
            <input type="text" class="codeiput" name="checkCode">
   <img id="codeImg" onclick="changeImg()" src="${pageContext.request.contextPath }/CheckImgServlet">
          </div> --%>
       
        <div class="login-btn"><button>注册</button></div>
        </form>
      </div>
    </div>
  </div>
</div>
</div>
<div class="footer">
 <p><span>M-GALLARY</span> ©2017 POWERED BY IMOOC.INC</p>
</div>

</body>
</html>

package com.imooc.domain;

public class User {
 private String name;
 private String password;
 private String path;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 public String getPath() {
  return path;
 }
 public void setPath(String path) {
  this.path = path;
 }
 public User(String name, String password, String path) {
  super();
  this.name = name;
  this.password = password;
  this.path = path;
 }
 public User(){
  
 }
 @Override
 public String toString() {
  return "User [name=" + name + ", password=" + password + ", path=" + path + "]";
 }
 

}

package com.imooc.service;

import java.util.List;

import com.imooc.domain.User;
//import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;

public interface UserService {
 public void regist(List<User> list,User user);
 
}

package com.imooc.service.impl;

import java.util.List;

import com.imooc.domain.User;
import com.imooc.service.UserService;

public class UserServiceImpl implements UserService{

 @Override
 public void regist(List<User> list, User user) {
  // 保存用户信息
 list.add(user);
 }

 

}

package com.imooc.web.listener;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

import com.imooc.domain.User;

@WebListener
public class InitServletContextListener implements ServletContextListener {


    public void contextDestroyed(ServletContextEvent sce)  {
    }

    public void contextInitialized(ServletContextEvent sce)  {
     System.out.println("项目中数据初始化了....");
     // 创建一个用于保存用户信息的List集合
     List<User> userList = new ArrayList<User>();
     // 将List集合存入到ServletContext域中
     sce.getServletContext().setAttribute("userList", userList);
    }
 
}

package com.imooc.web.servlet;


import java.io.IOException;
import java.util.List;

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.imooc.domain.User;
import com.imooc.service.UserService;
import com.imooc.service.impl.UserServiceImpl;

@WebServlet("/RegistServlet")
public class RegisterServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;

 protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  request.setCharacterEncoding("utf-8");
  response.setContentType("text/html;charset=utf-8");
  //接受数据
  String username = request.getParameter("username");
     String password = request.getParameter("password");
  //封装数据
  User user = new User();
  user.setName(username);
  user.setPassword(password);
  
    
  //处理数据
  UserService userService=new UserServiceImpl();
  //从ServletContext域中获取用户的集合
  List<User> list=(List<User>)getServletContext().getAttribute("userList");
  userService.regist(list, user);
System.out.println(list);
response.sendRedirect(request.getContextPath()+"/login.jsp");

 }

 protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request, response);
 }

}

http://img1.sycdn.imooc.com//climg/5e08ca1209daffd406550306.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小班 2019-12-30 15:10:11

同学你好,同学可以打开自己的tomcat文件夹,找到webapps

http://img1.sycdn.imooc.com//climg/5e09a0b70983e7ca03250289.jpg

找到自己发布的项目,(比如,这里老师发布了一个Test6的项目)

http://img1.sycdn.imooc.com//climg/5e09a0fa09776a7d02480241.jpg

打开这个项目,找到WEB-INF\classes里面,查看是否存在RegisterServlet的.class文件

http://img1.sycdn.imooc.com//climg/5e09a1b709e03ec704060225.jpg

如上所示,就是编译后的class文件,如果同学项目中没有如上所示的RegisterServlet的class文件内容,就是项目发布有问题,同学可以删除这个项目文件内容,清理tomcat缓存,重新发布这个项目

http://img1.sycdn.imooc.com//climg/5e09a2ad0925310e03390441.jpg

如上所示,重新发布后再试一下。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小班 2019-12-30 11:57:43

同学你好,根据贴出的报错信息,404是没有找到对应地址下的资源内容,检查贴出代码RegistServlet并没有书写错误,对应可能出现这样问题的原因:

        1、项目没有重新启动RegistServlet,项目中RegistServlet没有对应的加载,同学尝试重启一下项目。

        2、项目中存在之前的缓存内容,同学可以清理浏览器缓存、eclipse中项目缓存,清理后再来重启尝试一下。

http://img1.sycdn.imooc.com//climg/5e0975060931315d05610371.jpg

http://img1.sycdn.imooc.com//climg/5e09751909dbb46f02400248.jpg

        3、同学项目启动是否有问题,控制台有报错信息吗,访问其他servlet可以访问吗,建议同学将项目的目录结构贴出。

        4、form表单的提交形式是enctype="multipart/form-data",对应在servlet中接收数据不能使用getParameter方法,会获取不到对应的数据。

同学可以根据上述步骤一一排查一下

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 cj啦啦啦啦 #1
    前面两种情况已经排查,出现同样的错误
    2019-12-30 12:48:29
  • 提问者 cj啦啦啦啦 #2
    目录结构截图在另一个问题里面
    2019-12-30 12:50:40
  • 提问者 cj啦啦啦啦 #3
    代码重新写了好几遍都是同样的错误,一直卡在这
    2019-12-30 12:52:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师