jsp页面相比静态页面html来说,就是多了一些脚本,利用这些脚本来动态地改变页面内容的显示。

1.JSP脚本写法

 <%            这里写java代码;            %>
<%! JSP声明,用来声明变量、方法; %>
<%= 表达式 %>
4 <%-- JSP注释 --%>

注意:表达式后面不能接分号。

2.JSP指令

 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ include file="login_success.jsp" %>

page指令,基本上可以说是每个jsp页面的标配吧,它定义了这个jsp页面脚本语言--java,解析类型--html,

内容编码--utf-8,以及页面的编码-utf-8.

include指令,这个指令相当于html的iframe标签,实现在这个页面中内嵌一个其他页面,这个指令位置放在

哪,那么新页面的渲染位置就在哪。

3.JSP动作

表单获取用户名、密码;

 <%--用javabean规则建一个Users类(eco包下),实例化一个对象newUser --%>
<jsp:useBean id="newUser" class="eco.Users" scope="page"/>
<%--设置newUser的属性值,值来自于表单,*号表示取得所有属性值赋给对应的newUser对象 --%>
<%--属性名如果不写*,可以填newUser对应的属性,但是没有填的属性就获取不到 --%>
<jsp:setProperty name="newUser" property="*" />
<%--调用newUser对象的getter方法获取属性值,渲染到页面 --%>
姓名:<%=newUser.getUsername() %>
密码:<%=newUser.getPassword() %>

注意:登录界面填写的用户名、密码数据类型一定要和Users类中规定的数据类型一致!

手动设置输出的用户名、密码;

 <form id="login" action="login.jsp?mypassword=88888" method="post">
<jsp:useBean id="newUser" class="eco.Users" scope="page"/>
<%--手动设置username的值vaule--%>
<jsp:setProperty name="newUser" property="username" value="eco" />
<%--手动设置password的值,值来自于表单发送请求时设置的mypassword值--%>
<jsp:setProperty name="newUser" property="password" param="mypassword" /> 姓名:<%=newUser.getUsername() %>
8 密码:<%=newUser.getPassword() %>

上面最后一个是将发送请求时URL里的mypassword值取出赋值给newUser对象的password属性;

<%=request.getParameter("mypassword") %>这句命令即是获取发送请求时URL里的mypassword值。

 <jsp:include page="login_success.jsp" flush="true" />

这是一个include动作,功能和其指令一样,page属性表示要插入的页面,flush属性表示是否从缓冲中读取。

 <jsp:forward page="login_success.jsp" />

这是一个服务器转发动作,相当于

request.getRequestDispatcher("login_success.jsp").forward(request, response);

将登录页面发来的请求转发到login_success.jsp页面,这个过程是一次请求,虽然经过了两个页面。

 <jsp:forward page="login_success.jsp" >
<jsp:param name="e-mail" value="eco@163.com" />
</jsp:forward>

parameter动作通常和forward一起使用,登录表单发送请求给当前页面时只保存了用户名、密码两个信息,

当前页面要转发这次请求给login_success.jsp页面,转发之前,为这次请求添加了一个e-mail属性,那么,

我们可以在login_success.jsp页面通过<%=request.getParameter("e-mail") %>获取之前添加的e-mail属性。

最新文章

  1. Navi.Soft30.开放平台.聚合.开发手册
  2. 如何将NTFS格式的移动硬盘挂接到Mac OS上进行读写(Read/Write)操作
  3. Div自适应高度的方法
  4. 分布式一致性原理—CAP
  5. 高版本myeclipse破解以及优化
  6. Pl/sql 导入数据错位问题
  7. 使用GitHub进行协同项目开发和开源项目贡献
  8. logstash grok正则调试
  9. POJ 2689 Prime Distance(素数筛选)
  10. 虚拟机安装 deepin Linux 注意事项
  11. sklearn包中有哪些数据集你都知道吗?
  12. [HZOI 2015]疯狂的机器人
  13. SpriteBuilder中频繁的切换场景层的解决办法
  14. GIL全局锁测试
  15. 基于Hexo搭建个人博客网站
  16. guxh的python笔记十:包和模块
  17. 360极速浏览器Onetab插件存储位置
  18. Food HDU - 4292 (结点容量 拆点) Dinic
  19. DevExpress Windows 10 UWP Controls新版亮点
  20. 更新yum源却忘了生成缓存 造成每次启动机器报:the package list needs to be rebuilt

热门文章

  1. Django练习——TodoList
  2. 【翻译】将Ext JS Grid转换为Excel表格
  3. (NO.00003)iOS游戏简单的机器人投射游戏成形记(三)
  4. 【leetcode73】经典算法-Guess Number Higher or Lower
  5. React Native之AppRegistry模块
  6. iOS屏幕适配-iOS笔记
  7. Linux 学习笔记_12_Windows与Linux文件共享服务_1.1_--Samba(上)
  8. (NO.00001)iOS游戏SpeedBoy Lite成形记(六)
  9. 开源库BaseRecyclerViewAdapterHelper
  10. android动画介绍--Animation 实现loading动画效果