纯JSP实现简单登录跳转

1.JSP介绍

JSP即Java Server Pages,JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 它是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。

1)原理

2)内置对象(参考自百科)

request

request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。

response

response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。

session

从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。

application

服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。

out

out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。

page

page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

config

config 对象的主要作用是取得服务器的配置信息。通过 pageContext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

exception

java.lang.Throwable 的实例,该实例代表其他页面中的异常和错误。只有当页面是错误处理页面,即编译指令page 的isErrorPage 属性为true 时,该对象才可以使用。常用的方法有getMessage()和printStackTrace()等。

pageContext

pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。

2.如何查看jsp经过解析转换之后的Java代码(启动项目并利用tomcat发布之后,可以在tomcat安装目录下的“work”目录找到解析后对于的.java文件和编译后的.class文件)

3.简单登录跳转实例代码实现

  • login.jsp
 1 <%@ page contentType="text/html; charset=gbk" import="dto.User"%>
 2
 3 <html>
 4     <head>
 5         <title>login</title>
 6     </head>
 7     <body>
 8         <!-- <p1>test!</p1> -->
 9         <h2 align="center">欢迎登录</h2>
10         <form name=loginForm action="handlelogin.jsp" method=post>
11         <table align="center">
12             <tr>
13                 <td>用户名:</td><td><input type=text name=username /></td>
14             </tr>
15             <tr>
16                 <td>密码:</td><td><input type=password name=pwd /></td>
17             <tr/>
18             <tr>
19             <td colspan="2",align="center">
20                 <input type="submit" value="submit" />
21                 <input type="reset" value="reset" />
22             </td>
23             </tr>
24         </table>
25
26         </form>
27     </body>
28 </html>
  • handlelogin.jsp
 1 <%@page contentType="text/html; charset=gbk" import="dto.User" %>
 2
 3 <!-- 内嵌java代码,主要控制逻辑跳转 -->
 4 <%
 5     String username = request.getParameter("username");
 6     String pwd = request.getParameter("pwd");
 7     if(username.equals("admin")&&pwd.equals("123")){
 8         User u = new User(username,pwd);
 9         session.setAttribute("username",username);
10         pageContext.forward("ok.jsp");
11     }else{
12         pageContext.forward("login.jsp");
13     }
14 %>
  • ok.jsp
1 <%@ page contentType="text/html; charset=gbk" import="dto.User" %>
2
3 <html>
4     <body>
5         <h1>登录成功,<%=session.getAttribute("username") %></h1>
6     </body>
7 </html>
  • User.java
 1 package dto;
 2
 3 public class User {
 4
 5     private String username;
 6     private String pwd;
 7
 8     public User(String username, String pwd) {
 9         super();
10         this.username = username;
11         this.pwd = pwd;
12     }
13     public String getUsername() {
14         return username;
15     }
16     public void setUsername(String username) {
17         this.username = username;
18     }
19     public String getPwd() {
20         return pwd;
21     }
22     public void setPwd(String pwd) {
23         this.pwd = pwd;
24     }
25
26 }

登录演示:

结语

jsp跟Servlet没有具体的孰优孰劣。一般我们项目当中都是结合二者的长处进行开发的。使用jsp代码确实可以减少冗余代码,提高开发效率。不过,jsp的短板就是它在对页面逻辑进行处理时比较麻烦。而且每个人有各自的代码风格,如果有过多的jsp逻辑代码的话读来难免有些晦涩难懂!

时间: 2024-10-26 15:59:48

纯JSP实现简单登录跳转的相关文章

JSP+servlet简单登录实例

一个简单的jsp+servlet实例,实现简单的登录 转载▼ http://blog.sina.com.cn/s/blog_5c5bc9070100z7wb.html     开发环境myeclipse+tomcat6 1.先创建web project,项目名为RegisterSystem, 2.在WebRoot 目录下创建login.jsp文件,只需修改body中的内容,如下所示: <body>     <form action="login">     us

使用Eclipse开发Web项目(JSP)——简单登录、无sql

1.使用Eclipse开发Web项目(JSP) tomcat 2.在Eclipse中创建的Web项目: 浏览器可以直接访问webContent中的文件 例如http://localhost:8080/MyJspProject/index1.jsp 其中的index1.jsp就在WebContent目录中: 但是WEB-INF中的文件 无法通过客户端(浏览器)直接访问,只能通过请求转发来访问 注意:并不是任何的内部跳转都能访问WEB-INF:原因是跳转有两种方式:请求转发.重定向 3.配置tomc

纯JSP实现用户登录注册,记事本

没有美化,没有格式,没有样式 1.JSP登陆注册 将用户注册的信息保存在application对象中,用于登录时的验证. 首页如下: 如果未登录,在  session 中找不到 currentUser 的值,则直接跳转到其他页面. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE htm

纯JSP简单登录实例

记一下,免得以后忘记了,又要去查. 文件共有四个web.xml.login.jsp.logout.jsp.welcome.jsp四个文件 测试环境:Tomcat 6.0.x 假设项目名称是LoginSample,我的目录结构是这样的 ...\webapps\LoginSample\WEB-INF\web.xml ...\webapps\LoginSample\login.jsp ...\webapps\LoginSample\logout.jsp ...\webapps\LoginSample\

纯jsp用户登录系统

用纯jsp技术实现用户登录系统,需要用到三个.jsp文件.在文本目录下新建三个.jsp文件,分别命名为login.jsp,logincl.jsp和wel.jsp. 1.login.jsp文件用来放界面框架,在<body></body>中添加实现代码,下面是完整的实现代码: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>&l

使用struts做一个简单的登录跳转

[java web]第一节课 3.7号作业 做一个非常简单的登录跳转界面,要求: 需要一个登陆界面用于接受用户输入的信息 输入姓名"wei"如果正确则跳转到"index.jsp"页面显示"welcome" 如果输入的姓名不是"wei"则跳转到"login.jsp"页面重新输入. 1.创建一个web project命名为"Login1"版本用JavaEE 5 version:1.7 2.右

简单登录(jsp+servlet)

开发环境eclipse+tomcat8 1.先创建web project,项目名为RegisterSystem, 2.在WebRoot 目录下创建login.jsp文件,只需修改body中的内容,如下所示: <body>    <form action="login">    username:<input type="text" name="username"><br>    password:&

【SSH进阶之路】Struts基本原理 + 实现简单登录(二)

上面博文,主要简单的介绍了一下SSH的基本概念,比較宏观.作为刚開始学习的人可以有一个总体上的认识,个人觉得对学习有非常好的辅助功能,它不不过一个"瞭望塔".更是检验是否真正掌握全部内容的一个前提. Struts是基于MVC的框架,它进一步的对MVC进行了封装,它是怎么封装的,我们从先回想一下MVC再到Struts.再用Struts给大家实现一个简单登录的实例.我们開始吧. MVC 概念 MVC全名是Model View Controller,是模型(model)-视图(view)-控

jfinal与bootstrap的登录跳转实战

前言:终于来了一篇有质量的文章,我个人感觉非常不错,<jfinal与bootstrap之间的登录跳转实战>.具体内容包含有点击登录弹出模态框.点击登录确认按钮后的validate.jfinal的validate.jfinal的session管理.ajax请求与返回信息处理.页面间智能跳转. 弹出模态框以及jquery validate可以参照jquery weebox总结.弹出窗口不居中显示?.jquery validate初上手系列文章. 从jfinal的validate说起 当然你可以参考