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逻辑代码的话读来难免有些晦涩难懂!

转载于:https://www.cnblogs.com/SeaSky0606/p/4575741.html

纯JSP实现简单登录跳转相关推荐

  1. jsp oracle 登录页面,Oracle数据库之ORACLE+Myeclipse+jsp实现简单登录功能

    本文主要向大家介绍了Oracle数据库之ORACLE+Myeclipse+jsp实现简单登录功能,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库表的建立: c ...

  2. jsp mysql简单登录_简单的登录页面,实现增删改查运用jsp/servlet和mysql数据库免费分享...

    属性            大小     日期    时间   名称 ----------- ---------  ---------- -----  ---- 文件        455  2012 ...

  3. 纯JSP简单登录实例

    记一下,免得以后忘记了,又要去查. 文件共有四个web.xml.login.jsp.logout.jsp.welcome.jsp四个文件 测试环境:Tomcat 6.0.x 假设项目名称是LoginS ...

  4. 使用JSP实现简单的登录注册功能,并且使用Session跟踪用户登录信息

    使用JSP实现简单的登录注册功能,并且使用了Session来跟踪用户的登录信息,这个是用纯JSP来实现此功能的,由于没有连接数据库,所以使用List来模拟数据库. 第一步:创建web项目 如果有不会创 ...

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

    [java web]第一节课 3.7号作业 做一个非常简单的登录跳转界面,要求: 需要一个登陆界面用于接受用户输入的信息 输入姓名"wei"如果正确则跳转到"index. ...

  6. JSP实现简单的登录页面实现及代码(非连接数据库)

    ** JSP实现简单的登录页面实现及代码(非连接数据库) ** 1.实现一个简单的登陆页面: 2.如果登陆成功,提示页面欢迎你,进入我的主页: 3.如果登陆不成功跳转到登陆页面: 4.使用固定用户名和 ...

  7. jsp+servlet实现简单登录页面功能Demo

    小白新路历程-1 实现功能: 模拟简单登录功能,登录成功跳转新页面,登录失败在原登录界面提示登录失败信息 开发环境: eclipse Tomcat-8.0 预备知识: HTML标签,Servlet相关 ...

  8. 初识javaWeb:纯JSP+CSS+JS构建一个简单的电商平台

    github地址:https://github.com/yaodebian/GoGoLe 初识java web,想在后端用java有一技之长.注:以下仅是自己的一个程序记录. 首先java web的动 ...

  9. 纯jsp实现数据库的连接和验证登录

    目录 纯jsp实现数据库连接并且登录 代码段 login.jsp <%@ page language="java" contentType="text/html; ...

最新文章

  1. linux socket原理,socket 的工作原理
  2. 树莓派4烧录系统后黑屏_树莓派4B初次使用--系统安装|配置
  3. dg oracle 切换模式_oracle dg切换操作示例
  4. Redis(1):简介
  5. GPU Saturday技术沙龙:OpenCL程序员眼中的下一代APU架构
  6. C语言数组越界导致无限循环
  7. LeetCode 1701. 平均等待时间(模拟)
  8. LaTeX技巧205:使用split输入多行公式技巧
  9. CVPR2019| 最新CVPR2019论文抢先看!
  10. Angular.js学习-入门
  11. libcurl使用easy模式阻塞卡死等问题的完美解决---超时设置
  12. HAproxy负载均衡部署
  13. javaweb文件压缩下载
  14. 软件测试工作职责,软件测试经理岗位职责
  15. 华为NP课程笔记11-STP+RSTP
  16. Solr数据库连接之多表关联
  17. UVa OJ 126 - The Errant Physicist (粗心的物理学家)
  18. 《R数据科学》学习笔记|Note5:使用dplyr进行数据转换(下)
  19. 哔哩哔哩如何提取封面_如何提取封面
  20. 服务器占用内存高,单任务管理器查看每个程序占用都不高

热门文章

  1. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用...
  2. Perl学习笔记(十)--通过DBI访问数据库
  3. Linux命令删除某目录下的所有.svn文件
  4. VB.NET 调用外部程序
  5. leetcode算法题--Is Subsequence
  6. acwing算法题--01背包问题
  7. linux用户态驱动--VIFIO、IOMMU、UIO(二)
  8. leetcode算法题--飞机座位分配概率
  9. Windows注册表修改实例完全手册(下)
  10. vue2.0无限滚动加载数据插件