【重温】_JSP与Servlet重温笔记,要点概述,jsp_servlet简单登录页面
来源:互联网 发布:php 支付宝在线支付 编辑:程序博客网 时间:2024/05/16 06:07
1.编译指令
include,page,taglib
2.脚本语法
注释:<!-- -->, <% --%>
申明:<%! %>
表达式:<%= %>
Java脚本:<% %>
3.动作语法
<jsp:forward>,<jsp:include>,<jsp:plugin>,
<jsp:getProperty>,<jsp:setProperty>,<jsp:useBean>
编译指令格式:
<%@Directive 属性=“属性值”%>
<%@page language=“script language”|
extends=“className”|
import=“importList”|
buffer=“none|kb size”| --none:不缓冲,默认8k
session=“true|false”| --是否可以使用session,默认true
autoFlush=“true|false” --缓冲器是否自动清除,默认true
isThreadSafe=“true|false”| --默认false(永远不要设成true)
info=“infoText”| --任何字符
errorPage=“errorPageUrl”|
isErrorPage=“true|false”|
contentType=“contentTyepInfo”|
pageEncoding=“gb2312”
%>
两中include比较:
1.静态导入
<%@include file="fileURL"%><%@include file="logo.jsp"%>
是在servlet引擎转译时,就把此文件内容包含了进去(两个文件的源代码整合到一起,全部放在_jspService方法中),
所以只生成一个servlet,即只生成一个java和class,所以两个页面不能有同名的变量。
运行效率高一点点。耦合性较高,不够灵活。
2.动态导入
<jsp:include page=“URLSpec” flush=“true”/>
<jsp:include page="logo.jsp"></jsp:include>
是在servlet引擎转译后,请求的此页面,所以生成了两个servlet,即两个java和class,所以可以有不同的同名变量。
生成两个servlet,相当于两个类之间的调用,耦合性较低,非常灵活。
Include不能带参数, 而<jsp:include>可以
<jsp:include page=“URLSpec” flush=“true”/>
<jsp:include page=“URLSpec” flush=“true”>
<jsp:param name=“ParamName” value=“paramValue”/>
</jsp:include>
jsp:param用来设定include文件时的参数和对应的值
<jsp:include page='<%=request.getParameter("includepage")%>'></jsp:include><jsp:include page="1.jsp">
<jsp:param value="10" name="kk"/>
</jsp:include>
<jsp:include page="1.jsp?kk=10"></jsp:include>
申明:<%! %>
<%!int hh = 3;//相当于java里的成员变量
%>
表达式:<%= %>
<%=dd%>
相当于<% out.print("申明"); %>
<jsp:forward>
<jsp:forward> 标签后的代码不会被执行
使用同一个request
forward后的语句不会继续发送给客户端
速度快
服务器内部转换,
可以传参数
response.sendRedirect
是不同的request
send后的语句会继续执行,除非return
速度慢
需要到客户端的往返,可以转到任何页面
可以传参数,直接写在url后面
jsp:useBean示例:
JSP:
<%@ page contentType="text/html; charset=gbk" import="com.exercise.jsp.User" %><html><head></head><body><%-- <jsp:useBean id="u1" class="com.exercise.jsp.User" scope="request"></jsp:useBean><jsp:setProperty property="uname" name="u1" value="lisi"/><jsp:setProperty property="pwd" name="u1" value="aisino"/><jsp:getProperty property="pwd" name="u1"/>--%><% //下面代码与上面代码效果一样,一般不用jsp:useBeanrequest.setAttribute("u1",new User());User user = (User)request.getAttribute("u1");//作用域的寻找范围(由小到大),pageContext/request/session/applicationuser.setUname("lisi");user.setPwd("aisino");out.println(user.getPwd());%></body></html>
JavaBean:
package com.exercise.jsp;public class User {private String uname;private String pwd;public String getUname() {return uname;}public void setUname(String uname) {this.uname = uname;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public User(String uname, String pwd){super();this.uname = uname;this.pwd = pwd;}public User(){}}
jsp中的basePath和path:
sample.jsp
1.jsp
路径:ExerciseJSP/WebRoot/login/sample.jsp
路径:ExerciseJSP/WebRoot/1.jsp
跳转示例:
sample.jsp如下
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<a href="1.jsp">跳转</a>
</body>
</html>
[bashPath:是以当前项目的根目录为准。如:http://localhost:8888/ExerciseJSP/
所以当前的跳转<a href="1.jsp">就可以了]
第二种:
sample.jsp如下
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<a href="../1.jsp">跳转</a>
</body>
</html>
[这里没有定义根路径,而sample.jsp在login目录下,1.jsp在webroot根目录下,
所以需要这么写<a href="../1.jsp">]
一般项目里用绝对路径,能避免很多麻烦
(在jsp里,可以用 request.getContextPath()方式来拿到webapp的路径
或者用myeclipse经常用的,指定basePath)
basePath和path可参考资料:http://blog.sina.com.cn/s/blog_73e110650100yw28.html
下面提供一共用jsp_servlet写的一个简单登录页面。下载地址(需要密码,请发邮件han_huayi@163.com):
http://pan.baidu.com/share/link?shareid=1908802552&uk=3409027827
- 【重温】_JSP与Servlet重温笔记,要点概述,jsp_servlet简单登录页面
- 【重温】_Struts2重温笔记,要点概述_【一】
- 【重温】_Struts2重温笔记,要点概述_OGNL表达式【二】
- 重温 Servlet
- 重温Servlet学习笔记--session对象
- 重温
- 重温SSH小项目实践(4)-简单的登录页面整合
- 重温 孙鑫 VC++ 笔记
- 重温struts2之struts2概述
- 【技术重温】html之概述
- 重温《C++ Primer》笔记七 VTABLE与VPTR的实现
- 重温《C++ Primer》笔记八 数组与指针的几个问题
- PMBOK重温笔记(一)
- PMBOK重温笔记(二)
- PMBOK重温笔记(三)
- PMBOK重温笔记(四)
- SQL Server 2000 重温笔记
- 重温傅里叶—笔记篇
- 北邮校长方滨兴临别奉送学生“六好”锦囊
- LeetCode -- Longest Palindromic Substring
- 基于 Android NDK 的学习之旅-----JNI LOG 打印
- 消息的配置
- iOS 实现ping命令
- 【重温】_JSP与Servlet重温笔记,要点概述,jsp_servlet简单登录页面
- Linux进程调度与内核抢占总结
- poj 2042 Lagrange's Four-Square Theorem
- 初学git(1)
- Hive HA使用说明
- Win32 Series - Keyboard Messages and Character Sets
- FbxProperty(Fbx对象特性)
- nova 组件的wsgi详细工作流程
- dhcp配置文件