- 浏览: 79807 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
一辈子的咲子推:
其实很多学生考试不及格未必就是不学习,太多学生把大学几年时间全 ...
真的不想监考 -
jackroomage:
看错了,你写的没有问题。sorry!!!
Java Web实践专题——访问路径问题 -
jackroomage:
<a href="./../bb/b_a.js ...
Java Web实践专题——访问路径问题
目标:
l 进一步体会JSP应用;
l 掌握表达式语言的使用;
l 掌握标准标签库的使用;
l 掌握<jsp:forward>标签的使用;
l 掌握<jsp:include>标签的使用;
l 掌握<%@ include指令的使用。
内容:
l 通过登录功能进一步体会JSP技术,在开发过程中介绍表达式语言和JSTL的用法;
l 在此基础上对代码进行修改,体会相关标签的用法。
1、要完成的功能
完成登录功能,首先需要一个用于输入登录信息的界面(用户名和口令),然后有处理文件完成判断,处理文件用于判断登录信息是否合法。如果成功,使用登录成功的界面进行响应,如果登录失败,应该专向登录失败的界面。
假设:因为数据库连接相关内容没有介绍,不能进行真正的登录验证,所以假设用户名为zhangsan,口令为lisi的时候登录成功,其它情况登录失败。
2、首先编写登录界面
<%@ page contentType="text/html;charset=gb2312"%>
请登录<br>
<form name="form1" method="post" action="login_process.jsp">
用户ID:<input type="text" name="userid"><br>
口令:<input type="password" name="userpass"><br>
<input type="submit" value="登录"><input type="reset" value="重置">
</form>
注意:这里没有进行客户端验证,主要强调其它内容,在实际处理中,只要涉及输入信息就应该进行验证。
用户输入信息之后,需要对用户输入的信息进行验证,判断用户输入信息是否正确,这里不用嵌入Java代码的方式,使用JSTL中的标签完成判断,下面介绍如何判断。
3、如何判断?
在JSTL的核心标记库(core)有一个if标记用于完成判断。使用方法如下:
1)需要把两个压缩包jstl.jar和standard.jar放到WEB-INF/lib下面;
2)声明核心标记库
<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%>
3)使用if标记
基本语法格式:<c:if test=”” [var=”” scope=””]> 满足条件的时候要执行的代码</c:if>
test属性是必须的,是if的判断条件,var属性和scope属性是可选的,如果希望把判断的结果保存起来,可以使用var属性和scope属性,var属性指出保存的变量的名字,scope指出变量的作用范围。test的内容应该是结果为true或者false的表达式语言的值。要使用表达式语言,下面介绍表达式语言的基本用法。
4、表达式语言(EL)的使用
基本格式:开始标记“${”结束标记“}”
中间的内容可以是某个对象,某个对象的属性,若干对象的运算结果。
例(访问请求参数中的值):
如果要操作用户输入的userid,可以使用${param.userid} 相当于下面的代码:
<%
String userid = request.getParameter(“userid”);
out.println(userid);
%>
例(访问某个对象的属性):
如果要操作某个对象的属性,假设在request中存在对象user(类型为User),user有属性userid,要直接显示这个userid,如何显示,采用EL,可以写成${user.userid},相当于下面的代码:
<%
User user = request.getAttribute(“user”);
String userid = user.getUserid();
out.println(userid);
%>
注意:对属性的访问方式也可以使用中括号,例如可以使用下面的代码访问userid:
${user[“userid”]}
两种情况下只能使用中括号的方式:
l 如果属性中包含了特殊符号,例如“.”;
l 如果要访问的属性是一个变量。
例(在表达式语言中进行运算):
如果要进行运算:${3+5}
下面介绍在EL中可以使用那些运算。
5、EL中可以进行哪些运算?
常用的运算如下:
1)数学运算
+-*/ %
2)关系运算
> >= == <= < !=
3) 逻辑运算
&& || !
6、如何编写这个处理程序login_process.jsp
登录成功或者失败的时候直接提示。
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:if test="${param.userid==\"zhangsan\" && param.userpass==\"lisi\"}">
登录成功!
</c:if>
<c:if test="${param.userid!=\"zhangsan\" || param.userpass!=\"lisi\"}">
登录失败!
</c:if>
当登录失败或者成功的时候,会显示不同的提示语。但是正常情况下在需要采用专门的页面进行响应,下面介绍用法。
7、在服务器端,如何实现页面之间的跳转?
在JSP中提供了一个标签<jsp:forward>,该标签可以完成跳转。
语法格式:<jsp:forward page=”目标文件”/>page属性指出要跳转到哪个文件。
作用:当文件执行到这个标签的时候,会转向执行目标文件,这个标签之后的内容不再执行。
例:有两个文件a.jsp和b.jsp,a.jsp文件内容如下
aaaa
<jsp:forward page=”b.jsp”/>
AAAAA
b.jsp文件的内容是
BBBBBB
如果现在访问a.jsp,会得到结果:
BBBBBBB
注意:在<jsp:forward>标签之前的内容虽然执行了,但是没有显示,之后的内容没有执行。地址栏中显示是第一个文件的名字,显示的内容是第二个文件的。
8、修改登录处理文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:if test="${param.userid==\"zhangsan\" && param.userpass==\"lisi\"}">
<jsp:forward page="success.jsp"/>
</c:if>
<c:if test="${param.userid!=\"zhangsan\" || param.userpass!=\"lisi\"}">
<jsp:forward page="failure.jsp"/>
</c:if>
另外需要编写success.jsp和failure.jsp
9、success.jsp的内容
<%@ page contentType="text/html;charset=gb2312"%>
登录成功的界面!
10、 failure.jsp的内容
<%@ page contentType="text/html;charset=gb2312"%>
登录失败的界面!
需要注意标签的结束符。标签都有开始标志和结束标志,例如<c:if test=”true”> 内容</c:if> 也可以写成:
<c:if test=”true”/>
第二种方式中标签体为空。
Html代码格式要求不严格,可以没有结束符,例如:<input type=”text” name=”userid”>
11、 <jsp:include>标签
把上面的login_process.jsp文件中的<jsp:forward修改为<jsp:include查看效果。
语法格式:与<jsp:forward>相似.
作用:包含。在程序运行到这个标签的时候,转向执行目标文件,目标文件执行完之后继续执行标签之后的内容。与方法调用非常像。
与<jsp:forward>的区别:对于标签之前的内容,jsp:forward之前的内容执行,但不显示,jsp:include执行也显示。对于标签之后的内容,jsp:forward不执行了,jsp:include执行并且要显示。
12、 include指令
语法格式与page指令相同:<%@ include file=”目标文件”%>
作用:包含目标文件。
具体为:运行之前,把目标文件的内容拷贝到include指令所在的位置,形成一个文件,然后运行。
与<jsp:include>的区别:<jsp:include>所在的文件和要转向的文件分别执行,<%@ include指令是在转换的时候,把目标文件的内容拷贝到当前文件,运行的时候只有一个文件。
用途:把各个页面的共享部分单独做成文件,例如网站的logo,和版权联系方式等信息。在需要的时候使用<%@ include>指令进行包含。
例:需要在每个网页中显示版权信息。
这时候需要把版权信息单独写在一个文件中,下面是版权信息文件contact.jsp的内容:
<%@ page contentType="text/html;charset=gb2312"%>
光大计算机培训学校版权所有
电话:888888
在login.jsp中包含该版权信息之后的代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
请登录<br>
<form name="form1" method="post" action="login_process.jsp">
用户ID:<input type="text" name="userid"><br>
口令:<input type="password" name="userpass"><br>
<input type="submit" value="登录"><input type="reset" value="重置">
</form>
<%@ include file="contact.jsp"%>
如果出现错误:
org.apache.jasper.JasperException: /login.jsp(8,0) Invalid byte 1 of 1-byte UTF-8 sequence.
需要设置编码方式,在页面文件的上面添加语句:<%@ page contentType="text/html;charset=gb2312"%>
参考教材:《Java Web程序设计基础教程》
发表评论
-
网页之间共享值
2007-03-19 13:49 454Web应用是由大量的网页组成的,运行的基本原理是:用户通过客 ... -
Java Web实践专题——Eclipse中CVS的使用
2007-03-19 14:50 603CVS概述 主要作用是管理代码的版本,尤其是多人协同开发的时 ... -
Eclipse中Web应用的开发
2007-03-30 09:35 507Eclipse中Web应用的开发 应用服务器:tomcat ... -
MVC模式在Java Web中的应用
2007-04-21 22:06 397流行的Java Web应用框架基本上都实现了MVC模型,下面分 ... -
Tomcat中连接池的配置和使用
2007-04-27 13:19 465对于大型网站来说,信 ... -
WebLogic中连接池错误Failed to Generate Wrapper Class的解决方案
2007-05-01 13:25 543很多人在使用Weblogic配置连接池之后,会碰到这样一个 ... -
Sun Java System Appliation Server中连接池的配置
2007-05-01 14:16 5011、准备驱动程序 把 ... -
Java Web中的分页显示——通过界面实现
2007-05-04 23:11 670在界面完成分页控制, ... -
Java Web中的分页显示——在模型中实现
2007-05-04 23:25 465在模型中实现分页显示,主要是在把查询的结果集转换成对象集合的 ... -
NetBeans中的几个快捷方式
2007-06-15 12:38 508几个比较常用的方便代码编写的功能如下: 1、引入用到的类 ... -
最好的Java Web开发的书应该是什么样子?
2007-06-20 14:50 687关于Java Web开发的技术非常多,JSP、Servet、J ... -
JSP培训(1)——概述
2007-08-21 08:35 520本文是JSP培训的笔记,是培训的第一次——概述。 (参考 ... -
JSP培训(2)——运行原理、文档结构、简单输入输出
2007-08-23 09:16 602目标: l 掌握Web应用的文档结构; l 掌握JSP ... -
JSP培训(3)——客户端验证、常用输出方式、JSTL基本用法
2007-08-30 09:49 512目标: l 掌握客户端验证的基本过程; l 掌握 ... -
JSP培训(5)——使用JavaBean完成业务逻辑
2007-08-31 16:42 501目标: l 掌握什么是JavaBean; l 掌握如何 ... -
JSP培训(6)——使用Servlet作为控制器实现MVC模式
2007-09-04 13:38 614目标: l 初步理解MVC ... -
JSP培训(7)——使用JDBC完成动态验证、采用MVC完成数据查询
2007-09-04 13:43 537目标: l 掌握JDBC链接数据库的基本过程; l 掌 ... -
JSP培训(8)——添加功能和分页显示
2007-09-04 13:46 578学习目标: l 进一步掌握MVC设计模式; l 掌握添 ... -
JSP连接Microsoft SQL Server出错:Error establishing socket解决方法
2007-09-06 14:09 501安装SQL Server的补丁即可。 安装的时候需要注意:第 ... -
JSP培训(9)——使用MVC模式完成删除和修改功能
2007-09-10 15:43 657目标: l 进一步理解MVC模式; l 掌握删除功能的 ...
相关推荐
表单编辑 JSP语法(1)——HTML注释 JSP语法(2)——隐藏注释 JSP语法(3)——声明 JSP语法(4)——表达式 JSP语法(5)——Scriptlet JSP语法(6)——Page 指令 JSP语法(7)——Taglib ...
JSP扩展——自定义标签JSP扩展——自定义标签JSP扩展——自定义标签JSP扩展——自定义标签JSP扩展——自定义标签
第八章JSP动态网站开发——实例.zip 学习动态网站的建设。
jsp开发实例——购物车,是一个综合开发实例。比较有针对性。
myeclipse2017 jsp页面 <c:if>在select里面写 导致后面代码不是彩色问题 一半黑一半彩色
JSP实例开发源码——网站RSS订阅功能插件RSSMaker JSP版.zip
JSP:include和include指令区别,对应我的博客 blog.csdn.net/svitter
jsp脚本和<logic:iterate>标签:实现循环和分支逻辑 jsp脚本和<logic:iterate>标签:实现循环和分支逻辑 jsp脚本和<logic:iterate>标签:实现循环和分支逻辑
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本教程将为您展示如何用这些标签编写类似于 JSP 技术自带操作 —— 如 jsp:useBean、jsp:getProperty 和 jsp:forward —— 的自定义操作。介绍如何用特定于自已的域的表示逻辑的自定义操作来扩展 JSP 语法。
JSP实例:上传loading条的实现.doc JSP实例:上传loading条的实现.doc JSP实例:上传loading条的实现.doc
JSP实例开发源码——Noka tag 软件标签.zip
JSP核心技术——JSP引擎内幕(2010).pdf 内除了引擎外,还有jsp标签、线程安全
手写功能代码JSP——需要抄写 手写功能代码JSP——需要抄写
JSP网络编程从基础到实践的实例代码 ... 实例66 一个简单的struts应用实例——用户登录 第10章 JSP中的JavaMail开发 实例67 发送文本格式的邮件 实例68 发送 HTML邮件 实例69 发送带有附件的邮件 实例70 接收EMAIL
JSP入门必看实例——销售管理系统,MVC开发模式:Servlet+JavaBean+JSP,里面有源代码和数据库(mssql)
4、include包含语句 5、建立错误处理页面的范例程序 6、jsp:forward 7、简单计数器 8、设置页面属性 9、使用GB2312编码 10、使用Big5编码 11、c:catch的用法 12、<c:forEach> begin、end和step的用法 13 、 <c:...