当前位置:编程学习 > JAVA >>

Servlet写的登录页面

最基础的入门级程序。这是一个登录页面。为什么点击提交就出现错误页面。而若没有填写用户名或密码会提示“请填写用户名”之类。求问到底哪里出错啊。


index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>登录</title>
<script language="javascript" type="">
        function LoginSubmit(){
            var user=document.Login.loginName.value;
            var pass=document.Login.password.value;
            if(user==null||user==""){
                 alert("请填写用户名");
            }
            else if(pass==null||pass==""){
                 alert("请填写密码");
            }
            else document.Login.submit();
        }
</script>
</head>
<body>
<form method="POST" name="Login" action="LoginServlet">
<p align="left">
用户名:<input type="text" name="loginName" size="20"></p>
<p align="left">
密 码:<input type="password" name="password" size="20"></p>
<p align="left">
<input type="button" value="提交" name="B1" onclick="LoginSubmit()">
<input type="reset"  value="重置" name="B2"></p>
</form>
</body>
</html>


登录的Servlet文件

package com.enter.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class enter extends HttpServlet {
private static final long serialVersionUID = 1L;
  
    public enter() {
        super();
    }
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=GBK");
PrintWriter out=response.getWriter();
String pass = request.getParameter("password");
String user = request.getParameter("loginName");
if("haier".equals(user) && "soft".equals(pass)){
out.println("登录成功");
}
else{
out.println("登录失败!");
}
}

}
--------------------编程问答-------------------- 为什么点击提交就出现错误页面
你把错误页面的内容放上来吧。 --------------------编程问答-------------------- 点完提交就转到这个页面了。网址也变了。 --------------------编程问答-------------------- 把 "haier".equals(user) && "soft".equals(pass))
改成 if(user==null || pass==null) 则登录失败

因为如果什么都没填的话,user==null, 你这个函数"haier".equals(null)会报错吧
试试 --------------------编程问答-------------------- 那不就变成随便什么用户名和密码都能登录成功么 --------------------编程问答-------------------- 配置文件怎么写的? --------------------编程问答-------------------- 很明显你没有在web.xml中进行配置servlet,这是常见错误! --------------------编程问答-------------------- 你的web.xml有配置这个LoginServlet吗 --------------------编程问答-------------------- 贴你的WEB.XML 出来看看。
还有JS判空

if(!user  &&  user!=undefine)

尽量不要用==null  或者=='' --------------------编程问答--------------------
引用 8 楼 yxka8 的回复:
贴你的WEB.XML 出来看看。
还有JS判空

if(!user  &&  user!=undefine)

尽量不要用==null  或者==''



不好意思  undefine少加了引号 应该是user!='undefine' --------------------编程问答--------------------
引用 3 楼 wu862431048 的回复:
把 "haier".equals(user) && "soft".equals(pass))
改成 if(user==null || pass==null) 则登录失败

因为如果什么都没填的话,user==null, 你这个函数"haier".equals(null)会报错吧
试试


这种写法已经会避免了报空的情况。
习惯性的把""写在前面 --------------------编程问答-------------------- 配置文件web.xml中配置servlet
需配置两个参数
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-calss>类的物理地址</servlet-calss>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-partn>/LoginServlet</url-partn>
</servlet-mapping>
你检查一下里面的配置
主要是看看url-partn 是不是以/开头
我写的有能个别单词不对,你具体对对,就是配置这个 --------------------编程问答-------------------- 404错误一般是都是路径问题引起的,你的配置文件中的<url-pattern>/xxx</url-pattern>,其中/xxx应该与action="/xxx"保持一致(配置文件具体位置在webroot-web-inf目录下)具体代码应该就是11楼的 --------------------编程问答--------------------
引用 11 楼 u010168807 的回复:
配置文件web.xml中配置servlet
需配置两个参数
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-calss>类的物理地址</servlet-calss>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-partn>/LoginServlet</url-partn>
</servlet-mapping>
你检查一下里面的配置
主要是看看url-partn 是不是以/开头
我写的有能个别单词不对,你具体对对,就是配置这个

+ --------------------编程问答-------------------- <form method="POST" name="Login" action="LoginServlet">
换成
<form method="POST" name="Login" action="enter">
然后再检查一下web.xml文件中的servlet配置!
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,