⑴ 用servlet和jsp编写用户登录页面,并在返回给客户端的页面上,显示登录时填写的用户名及密码
index.jsp页面:
<%@ page language="java" contentType="text/html; charset=GB2312"%>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<!-- 提交请求参数的表单 -->
<form action="login" method="post">
<table align="center">
<caption><h3>用户登录</h3></caption>
<tr>
<!-- 用户名的表单域 -->
<td>用户名:<input type="text" name="username"/></td>
</tr>
<tr>
<!-- 密码的表单域 -->
<td>密码:<input type="password" name="password"/></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="登录"/><input type="reset" value="重填" /></td>
</tr>
</table>
</form>
</body>
</html>
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 Test extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
String name=request.getParameter("username");
String psw=request.getParameter("password");
if(name.trim().equals("")||psw.trim().equals(""))
out.println("你输入的用户名或密码为空");
else
out.println("用户 "+name+",你好!<br>你输入的密码为:"+psw);
}
}
web.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>Test</servlet-name>
<servlet-class>Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
⑵ jsp如何实现自动登录功能
1、在登录页面中添加一个复选框,让用户选择是否愿意在一定时间内实现自动登陆,例如两周。
代码:
<input type="checkbox" name="autologin">两周内自动登录
2、在负责处理登录过程的Servlet中,判断用户是否选择了该复选框。如果是,则执行这两个操作:向用户发送两个Cookie,以及向数据库写入一条相应的记录。
代码:
Cookie ckUsername, ckSessionid;
if (autologin.equals("on")) {
// 如果用户选择了“两周内自动登录”,则向用户发送两个cookie。
// 一个cookie记录用户名,另一个记录唯一的验证码,
// 并将此验证码写入数据库,以备用户返回时查询。(防止伪造cookie)
ckUsername = new Cookie("autoLoginUser", user.getUsername()); // user是代表用户的bean
ckUsername.setMaxAge(60 * 60 * 24 * 14); //设置Cookie有效期为14天
res.addCookie(ckUsername);
sessionid = session.getId(); // 取得当前的session id
ckSessionid = new Cookie("sessionid", sessionid);
ckSessionid.setMaxAge(60 * 60 * 24 * 14);
res.addCookie(ckSessionid);
// 在数据库中插入相应记录
userSessionDAO.insertUserSession(user, sessionid);
}
3、实现自动登录。因为用户下次访问的时候,可能直接访问网站的任何页面(例如通过收藏夹),而不一定是首页或者登录页面,所以我们需要用Filter拦截到达该网站的所有请求,并执行自动登录。
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest) req;
HttpSession session = request.getSession(true);
String username;
String sessionid; // 此sessionid是上次用户登录时保存于用户端的识别码,用于用户后续访问的自动登录。不是本次访问的session id。
Cookie[] cookies;
CookieManager cm = new CookieManager(); // CookieManager是一个自定义的类,用于从Cookie数组中查找并返回指定名称的Cookie值。
boolean isAutoLogin;
// 如果session中没有user对象,则创建一个。
User user = (User) session.getAttribute("user");
if (user == null) {
user = new User(); // 此时user中的username属性为"",表示用户未登录。
}
// 如果user对象的username为"",表示用户未登录。则执行自动登录过程。
// 否则不自动登录。
if (user.getUsername().equals("")) {
// 检查用户浏览器是否发送了上次登录的用户名和sessionid,
// 如果是,则为用户自动登陆。
cookies = request.getCookies();
username = cm.getCookieValue(cookies, "autoLoginUser");
sessionid = cm.getCookieValue(cookies, "sessionid");
isAutoLogin = userSessionDAO.getAutoLoginState(username, sessionid); // 如果在数据库中找到了相应记录,则说明可以自动登录。
if (isAutoLogin) {
user.setUsername(username);
user.setNickname(DBUtil.getNickName(username));
session.setAttribute("user", user); // 将user bean添加到session中。
}
}
chain.doFilter(req, resp);
}
⑶ 求jsp简单的登陆跳转注册页面
登陆页:
<%@ page language="java" pageEncoding="GB18030"%>
<head>
</head>
<body>
<form action="login_success.jsp" method="post">
用户名:
<input type="text" name="username" />
<br>
密 码
<input type="password" name="password" />
<br>
<input type="submit" name="Submit" value="登陆" />
<input type="reset" name="cancelButton" value="取消" />
</form>
</body>
登陆成功页:
<%@ page language="java" pageEncoding="GB18030"%>
<head>
</head>
<body>
<%
String name = request.getParameter("username");
String pwd = request.getParameter("password");
if ("hello".equals(name.trim()) && "word".equals(pwd.trim())) {
%>
<h1>
登陆成功:
<%=name%></h1>
<%
} else {
%>
<h1>
登录失败:
</h1>
<br>
三秒后跳到注册页面:
<%
response.setHeader("refresh", "3;url=regiest.jsp");
%>
<%
}
%>
</body>
注册页:
<%@ page language="java" pageEncoding="GB18030"%>
<head>
</head>
<body>
<form action="regiest_success.jsp" method="post">
用户名:
<input type="text" name="username" />
<br>
密 码
<input type="password" name="password" />
<br>
确认密 码
<input type="password" name="password2" />
<br>
<input type="submit" name="Submit" value="注册" />
<input type="reset" name="cancelButton" value="取消" />
</form>
</body>
注册成功页:
<%@ page language="java" pageEncoding="GB18030"%>
<head>
</head>
<body>
<%
String name = request.getParameter("username");
String pwd = request.getParameter("password");
String pwd2 = request.getParameter("password2");
if (null == name || "".equals(name)) {
out.print("用户名不能为空!!");
return;
}
if (null == pwd || "".equals(pwd)) {
out.print("密码不能为空!!");
return;
}
if (null == pwd2 || "".equals(pwd2)) {
out.print("确认密码不能为空!!");
return;
}
if (!pwd.equals(pwd2)) {
out.println("两次密码不正确!");
return;
}
response.sendRedirect("login.jsp");
%>
</body>
⑷ 我用jsp做了个登录页面,想让它记住密码,下次登录时不需要再输入密码,怎样实现
使用Cookie实现。
⑸ 用jsp编写一个很简单的登陆页面
login.JSP
注: 由于时间仓促,程序可能有细小的问题!但绝对可以满足你的需要了!如果你知道JSP什么原理;那么小的问题不是什么问题了! 共同学习~~~
<%@ page contentType = "text/html;charset=GB2312" %>
<%@ page import = "java.sql.*" %>
<html>
<head>
<title></title>
</head>
<body bgcolor=LightBlue>
<div align="center">
<br>
<H1>欢迎光临企业办公平台</H1>
<form name="form1" method="post" action="" target="_self">
<table width="90%">
<tr>
<td width="50%" height="30" align="right">用户名:</td>
<td width="50%" height="30" align="left"><input type="text" name="UserName"></td>
</tr>
<tr>
<td width="50%" height="30" align="right">密码:</td>
<td width="50%" height="30" align="left"><input type="password" name="UserPassword"></td>
</tr>
<td width="100%" height="40" align="center" colspan="2">
<input type="submit" name="sub" value="登录">
</td>
</tr>
</table>
</form>
</div>
<% try
{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:a","root","database1");
Statement stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = null;
String name =new String(request.getParameter("
UserName").getBytes(“8859_1”));
String passwd =new String(request.getParameter("
UserPassword").getBytes(“8859_1”));
if(String_sql==null)
{
out.println("登陆名不可以为空");
out.println(“<HR>”);
}
else{
String_sql="select * from student where name ="+name+" and password="+psword+;
rs=stmt.executeQuery(String_sql)
while(rs.next())
{ out.println("登陆成功!");
out.println("您的用户名是:"+name)
out.println("您的密码是:"+password);
rs.close();
stmt.close();
conn.close();}
}
Catch( Exception e )
{out.println(“<font color=red size=5><B>”);
out.println(“出错了!”);
out.println(“</B></font>”);
}%>
</body>
</html>
⑹ 在用JSP做一个登录页面。怎么使得那个登录框在屏幕的正中间显示
一般登录来框使用fieldset做的:自
<form name="myform">
<fieldset>
<legend>登录</legend>
价格:
<input type="text" name="bookprice" value="50"><br/>
书名:
<input type="text" name="bookname" value="Javascript入门教程"><br/>
作者:
<input type="text" name="bookauthor" value="小明"><br/>
<input type="button" onclick="getPrice()" value="计算折扣价">
</fieldset>
</form>
直接对fieldset元素用以下样式即可:
<style type="text/css">
fieldset {
margin:0px auto;
width:300px;
}
</style>
⑺ JSP做登录页面,登录失败的话怎么从验证页面传递一个参数给登录页面
方式1:
request.setAttribute("message","1");
request.getRequestDispather("登录页面url").forward(request,response);
登录页面(用到jstl):
<c:if test="${message ==1 }">
密码专错误!属
</c:if>
....
用代码块:
<%
String message = request.getAttribute("message");
if("1".equals(message)){
out.print("密码错误!");
}
%>
方式2:
response.sendRedirect("登录页面url?message=1");
<%
String message = request.getParameter("message");
if("1".equals(message)){
out.print("密码错误!");
}
%>
⑻ JSP登陆页面小实验
//20块钱搞定...
<html>
<head>
<scriptsrc="......jquery.1.7.2.js"></script>
<scripttype="text/javascript">
varloginNum=0;
functionlogin(){
varac=$("input[name=account]").val();
varpwd=$("input[name=pwd]").val();
$.ajax({
url:"login.jsp",
type:"POST",
data:"name="+ac+"&pwd="+pwd,
success:function(res){
if(res==0){
loginNum++;
if(loginNum==3){window.close();}
}else{
window.location='login.jsp';
}
}
});
}
</script>
</head>
<body>
账户:<inputtype="text"name="account"/><br/>
密码:<inputtype="password"name="pwd"/><br/>
<inputtype="button"value="登陆"onclick="login()"/>
</body>
</html>
login.jsp
<%
Stringac=request.getParameter("name");
Stringpwd=request.getParameter("pwd");
PrintWriterpw=response.getWriter();
Stringmsg="";
if(ac.equals("sa")&&pwd.equals("pwd")){
msg="1";
}else{
msg="0";
}
out.println(msg);
out.flush();
out.close();
%>
Welcome