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 或者=='' --------------------编程问答--------------------
不好意思 undefine少加了引号 应该是user!='undefine' --------------------编程问答--------------------
这种写法已经会避免了报空的情况。
习惯性的把""写在前面 --------------------编程问答-------------------- 配置文件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楼的 --------------------编程问答--------------------
+ --------------------编程问答-------------------- <form method="POST" name="Login" action="LoginServlet">
换成
<form method="POST" name="Login" action="enter">
然后再检查一下web.xml文件中的servlet配置!
补充:Java , Web 开发