- 浏览: 124567 次
- 性别:
- 来自: 深圳
文章分类
最新评论
写一个登录例子:
用户在login.jsp页面登录,如果用户名是zhangsan,密码为123,并且选择的普通用户,则登录成功。或用户名是lisi,密码为456,且选择的是管理员,则登录成功。如果登录失败,则返回到登录页面,并且在登录页面保留之前输入过的用户名及选择的用户类型。
User.java
package com.test.bean; public class User { private String username; private String password; private String authority; 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; } public String getAuthority() { return authority; } public void setAuthority(String authority) { this.authority = authority; } }
login.jsp 登录页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> <%String authority = (String)request.getAttribute("authority"); %> <form action="/servletTest/UserLoginServlet" method="post"> 用户名:<input type="text" name="username" value="<%= null == request.getAttribute("username") ? "": request.getAttribute("username")%>"/><br> 密码:<input type="password" name="password"/><br> authority: <select name="authority"> <option value="1" <%= "1".equals(authority)? "selected":""%>>common user</option> <option value="2" <%= "2".equals(authority)? "selected":""%>>administrator</option> </select><br> <input type="submit" value="submit"> </form> </body> </html>
UserLoginServlet.java
package com.test.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.test.bean.User; public class UserLoginServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); String authority = request.getParameter("authority"); if("1".equals(authority)){ //登录的是普通用户 if("zhangsan".equals(username) && "123".equals(password)){ User user = new User(); user.setUsername(username); user.setPassword(password); user.setAuthority(authority); HttpSession session = request.getSession(); session.setAttribute("user", user); request.getRequestDispatcher("/session/index.jsp").forward(request, response); }else{//登录失败 request.setAttribute("username", username); request.setAttribute("password", password); request.setAttribute("authority", authority); request.getRequestDispatcher("session/login.jsp").forward(request, response); } } else if("2".equals(authority)){ //登录的系统管理员 if("lisi".equals(username) && "456".equals(password)){ User user = new User(); user.setUsername(username); user.setPassword(password); user.setAuthority(authority); HttpSession session = request.getSession(); session.setAttribute("user", user); request.getRequestDispatcher("/session/index.jsp").forward(request, response); }else{//登录失败 request.setAttribute("username", username); request.setAttribute("password", password); request.setAttribute("authority", authority); request.getRequestDispatcher("session/login.jsp").forward(request, response); } }else{ request.setAttribute("username", username); request.setAttribute("password", password); request.setAttribute("authority", authority); request.getRequestDispatcher("session/login.jsp").forward(request, response); } } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doGet(req, resp); } }
以上servlet也可以改为重定向的方式实现:
response.sendRedirect("login.jsp?username="+username+"&password="+password);
在login.jsp页面必须改为request.getParameter()来接收servlet转回的username及password。
index.jsp 显示两个链接:query和update,只有管理员才显示update链接
<%@ page language="java" import="com.test.bean.*" pageEncoding="UTF-8"%> <html> <body> <% User user = (User)session.getAttribute("user"); if(null == user){ response.sendRedirect("login.jsp"); return; } %> <a href="QueryServlet">query</a><br> <!--只有管理员才显示update链接 --> <%if(((User)session.getAttribute("user")).getAuthority().equals("2")){ %> <a href="UpdateServlet">update</a><br> <%} %> </body> </html>
QueryServlet.java
package com.test.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; import javax.servlet.http.HttpSession; public class QueryServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); //如果 session中没有用户,则重定向到登录页面 if(null == session.getAttribute("user")){ response.sendRedirect("session/login.jsp"); return; } response.getWriter().print("welcome"); } }
发表评论
-
深入研究Servlet线程安全性问题(转)
2012-11-21 00:13 710http://www.yesky.com/334/195133 ... -
Web开发20:Http详解
2011-07-31 02:01 1108所谓无状态是指你发 ... -
Web开发19:自定义标签库
2011-07-24 21:55 673所谓上层标签就如下面的bbb标签 ... -
Web开发18:EL表达式
2011-07-24 19:38 687f -
Web开发17:Servlet监听器
2011-07-24 00:01 1395写了一个MyServletContextList ... -
WEB开发 16:Servlet Filter
2011-07-23 16:37 1310doFilter方法中有一个Fil ... -
Web开发14:Session
2011-07-19 00:52 1168当客户端浏览器第一次访问时,会在服务器的Servl ... -
Web开发13:Cookie
2011-07-17 23:31 846下面是个简单的例子,演示在客户端添加Coo ... -
Web开发12:Servlet多线程同步问题详细探寻
2011-07-17 22:50 1118下面看一个具体的 ... -
Web开发11:Servlet
2011-07-17 02:08 804我们编写的Servlet一般继承HttpServ ... -
Web开发10:对复杂表单进行客户端服务端验证
2011-07-16 19:27 976对上面这个用户基本信息页面进行客户端与服务器端的验证,下面 ... -
Web开发9:JavaBean
2011-07-16 00:05 442具体实例: 写一个JAV ... -
Web开发8:使用JavaScript与Servlet实现客户端与服务器端验证
2011-07-14 23:30 1107下面写一个注册页面 register.jsp,主 ... -
Web开发7:请求转发与重定向的区别
2011-07-13 22:11 1068需注意的是:所谓重 ... -
Web开发6:JSP内置对象比较与分析2
2011-07-11 21:25 969先看个小例子: request1.jsp <%@ p ... -
Web开发5:JSP内置对象比较与分析
2011-06-24 00:21 943内置对象与J2EE类的映射 以下是reques ... -
Web开发4:JSP转换为Servlet源代码深度解析
2011-06-22 00:20 1463JSP的注释写法是:<% ... -
Web开发3:Tomcat根据JSP生成Servlet机制深度剖析及核心源代码详解
2011-06-21 00:10 16951:什么是JSP(Java Server Pages): 在 ... -
Web开发2:第一个Servlet程序深度剖析,Web.xml文件深入详解
2011-06-19 14:28 24391,新建一个WEB工程:servletTest 在工程目录下 ... -
Web开发1:Tomcat环境配置
2011-06-15 23:40 831从http://tomcat.apache.org/获取T ...
相关推荐
**Flask Web开发:基于Python的Web应用开发实战** Flask是Python编程语言中的一个轻量级Web应用程序框架,以其简洁、灵活的特性受到了开发者们的广泛欢迎。它遵循"微框架"理念,允许开发者自由选择如何组织项目和...
《Flask Web开发:基于Python的Web应用开发实战》是一本深入浅出的教程,旨在帮助读者掌握使用Python的Flask框架构建Web应用程序的技术。Flask是一个轻量级的Web服务器网关接口(WSGI)Web应用框架,以其灵活性、...
此外,书中的实例和练习将帮助读者理解和掌握Java EE开发的整个流程,从而提升在实际项目中的应用能力。 总之,这本书是Java Web开发者不可或缺的参考资料,无论你是初学者还是有经验的开发者,都能从中获得宝贵的...
在IT行业中,尤其是在Java Web开发领域,Tomcat服务器是一个广泛使用的应用服务器,它负责处理HTTP请求并托管基于Servlet和JSP的应用程序。当我们在同一台服务器上部署多个Web项目时,有时需要实现不同Web项目之间的...
标题中的“Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码”表明这是一个关于使用Ruby on Rails框架进行敏捷Web开发的示例项目,名为Depot。Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它...
总的来说,"Java Web应用开发项目教程"是一个全面的学习资源,涵盖了从基础到高级的Java Web开发技术,旨在培养学习者的实际操作能力和问题解决能力。通过聂明老师的电子教案,学习者不仅可以深入理解理论知识,还能...
在实际应用中,可以通过定期发送空的Ajax请求到服务器来维持Session的有效性,防止因为长时间无操作而导致的Session过期。这种方式特别适用于那些用户可能会长时间不进行交互的Web应用。 5. **考虑使用Token进行...
《精通JSP-Web开发技术与典型应用》的范例代码涵盖了广泛的Web开发知识点,旨在帮助开发者深入理解和熟练掌握JSP技术在实际项目中的运用。JSP(JavaServer Pages)是一种基于Java的动态网页技术,它允许开发者在HTML...
### j2ee实验二:学习使用Session和Cookie #### 实验背景与目标 ...这些技能对于从事Web开发工作来说是非常宝贵的。此外,通过实践操作加深了对B/S架构的理解,为将来进一步探索复杂的Web应用程序打下了坚实的基础。
《精通jsp-web开发技术与典型应用》是一本深入讲解JavaServer Pages (JSP) 技术及其在Web开发中的实际运用的书籍。作者张新曼以其丰富的教学和实践经验,为读者构建了一套全面且实用的学习路径,旨在帮助学生和...
在本资源中,"web应用开发技术(JSP)源码" 提供的是与Web应用程序开发相关的源代码,特别是基于JavaServer Pages (JSP) 技术。JSP是一种动态网页开发标准,允许开发者将静态HTML与动态Java代码结合起来,以创建数据...
通过这些案例,学习者可以更好地理解JSP在实际项目中的应用,并提升自己的编程技能。 8. **调试与优化**:学习JSP开发不仅仅是编写代码,还包括错误调试和性能优化。了解如何利用开发工具进行调试,分析日志,以及...
在Web后端开发中,会话(Session)跟踪技术是一种常用的方法,用于在客户端与服务器之间维护用户状态,尤其在用户登录和...在实际开发中,应根据项目需求和环境选择合适的Session管理策略,确保系统稳定、安全地运行。
在这个Java Web应用开发的课堂案例中,我们关注的是如何在Servlet中读取和处理Session数据。Session是Web应用程序中用来跟踪用户状态的一种机制,特别是在无状态的HTTP协议上。这个案例主要涵盖了以下几个知识点: ...
通过提供的实例源代码,开发者可以学习到如何在实际项目中整合这些技术,从数据库设计、后端逻辑实现到前端界面展示,从而提升自己的Java Web开发能力。在研究源代码时,注意理解每个类和方法的作用,以及它们之间的...
PHP(Hypertext Preprocessor,超文本预处理器)是一种广泛使用的开源脚本语言,尤其在Web开发领域中占有重要地位。本教程针对的是那些希望通过学习PHP来构建动态、交互式网站的学生或初学者。作为大学教材,这份...
Session在Web开发中扮演着关键的角色,它是维持用户会话状态的一种机制。当用户打开浏览器访问网站并交互时,Web服务器通过Session来跟踪和管理每个用户的状态信息,比如用户登录状态、购物车内容等。Session的核心...
在Web开发中,当一个应用程序部署在多个服务器上形成集群时,如何实现多个服务器之间Session的共享成为了一个关键问题。由于Session是存储在单个服务器内存中的,因此默认情况下,不同服务器无法直接访问彼此的...
在Java Web应用开发中,制作站点计数器是一项常见的任务,它可以用来统计网站的访问次数,从而了解...因此,在实际应用中,我们还需要考虑优化策略,例如使用数据库或分布式缓存来存储访问计数,以提高系统的可扩展性。
5. **MVC模式**:在Java Web开发中,Model-View-Controller(MVC)设计模式是一种常见的架构模式,"ch19"、"ch29"等章节可能探讨了如何在实际项目中实现这一模式,使得代码结构清晰,易于维护。 6. **会话管理**:...