1.如果客户端禁止使用cookies,那不能使用session和cookies了.只能url重写和隐藏表单字段
2.有的网站是跨网页实现信息共享.实现方式?
3.taglib的使用
4.在jsp中jsp:forward。对于jsp的sendDirect其实可以通过response.sendDirect实现;
对于servlet,可以有RequestDispatcher.forward和response.sendDirect
注意:确认一下是否jsp:foward和调用requestDispatcher.forward是一样的?
在sendDirect时候如何可以在session中设置值?
5.pageContext.getSession()和request.getSession()和session本身有区别么?
结论:完全一样的
6.对于以下情况:
6.1) <form action="forward1.jsp?num=123" method="post">
<input type="text" name="zc" >
<input type="submit" value="sub">
</form>
forward1.jsp的内容如下:
<body>
<%=request.getParameter("zc")%>
<%=request.getParameter("num")%>
</body>
当提交时候.新的url是http://127.0.0.1:8080/MyWeb/forward1.jsp?num=123
结果显示:num值为123
结论:对于post,对于url中的?后的key/value值也能获取
6.2)<form action="forward1.jsp?num=123" method="get">
<input type="text" name="zc" >
<input type="submit" value="sub">
当提交时候,新的url是http://127.0.0.1:8080/MyWeb/forward1.jsp?zc=111
结果显示:num是null
结论:对于get,似乎只是在真正的请求中才获取内容,对于url的不反映
6.3) <%response.sendRedirect("forward1.jsp?num=123"); %>
地址是:http://127.0.0.1:8080/MyWeb/forward1.jsp?num=123
结果显示:num=123
6.4) <body>
<jsp:forward page="forward1.jsp?num=123"></jsp:forward>
</body>
地址是:http://127.0.0.1:8080/MyWeb/index2.jsp
结果显示:num=123
HTML知识
1.常用表单:
form ,input,select,textarea
javaScript:
6.7.8章没看
19讲的例子没看
20讲的video没有,没看
JSP:
1.html注释发送到客户端浏览器,但不显示 <!--comment-->
2.jsp注释不会被jsp引擎解释,也不会输出到客户端浏览器 <%--comment--%>
3,jsp指令:<%@taglib %> include page
一个jsp页可以包含多个page指令,但除import属性外,只能定义一次
jsp taglib:
定义一个标签处理类
定义标签库描述文件(.tld)
在web.xml中配置
<%@tablib uri="taglibUrl" prefix="tagPrefix"%>
4.脚本元素:
声明(变量和方法) <%! int i=0;%>
声明只在一个jsp页面中有效,如果要在多个页面生效,可以用include包括进来
表达式:<%=expression%>.不能以;结尾
scriptlet:<%java代码%>
5.动作元素
<jsp:useBean> <jsp:setProperty> <jsp:getProperty>
<jsp:param><jsp:forward><jsp:include><jsp:plugin>
<jsp:param>传递一个或者多个参数到指定动态文件,需要和
<jsp:include><jsp:forward><jsp:plugin>一起使用
6.(第15讲)内建对象:out,request,response,session,pageContext,application,config,page,exception
jsp四种范围,分别是page,request,session,application.区别是scope不同。对应的对象分别是pageContext,request,session,application
实现会话的四种方式:
使用持续cookies
重写包含额外参数的URL:利用Get方法在URL尾部添加一些额外的参数来达到会话追踪的目的
建立含有数据的隐藏表单字段
使用内建session对象
page范围:
pageContext.setAttribute
request.setAttribute
7.(第18讲)session/cookie区别:
存放地点:cookie在客户端的硬盘里,session保存在服务器的内存里
存活的时间:cookie可以长期保存在客户端,数据失效期限由expires属性指定;session随用户登录网站而临时生成,随用户的下线或超时而消失
安全性:cookie保存在客户端,安全性较差;session存放在服务器,用户不能修改,且浏览器关闭后失效,安全性好,但服务器反复读写磁盘文件,性能有影响
实现方式:cookie在后继访问中将信息返回给服务器;session是一个动作状态的持续,是一个会话
通过pageContext.getSession()获取HttpSession。通过HttpSession.putValue来设置session的信息,来维护用户对应的信息
比如购物车的内容等; 对于使用隐藏字段的方式,其实还是通过request.getParameter方式来实现的
<input type="hidden" name="" value=<%=name%>>
session失效的两个可能原因:超时或者客户端浏览器关闭
8.application:负责提供应用程序在服务器中运行的一些全局信息,直到服务器关闭为止
被封装为ServletContext接口
提供了三类方法:
接口容器相关信息的方法:getMajorVersion(),getMinorVersion(),getServerInfo();
服务端的路径和文件方法:getMimeType(String file),getContext(String uripath),getRealPath(String path)
信息记录的方法:log(String msg),log(String msg,Throwable t)
9.pageContext: 一般用于设置,获取当前JSP页面的一些属性,也能够存取页面的其他隐含对象以及所支持的属性
10.config对象:主要作用是取得服务器的配置信息,
11.page对象:代表JSP文件编译后的servlet对象
对request,session,application对象更是必需要掌握的,熟练使用每一种对象的常用方法
12.javaBean的存在范围
注意语法
<jsp:useBean id="zc" class="" scope="request">
<jsp:setProperty name="zc" property="*">
</jsp:useBean>
其中javaBean的属性名需要跟表单中的name一致才可以自动获取
13.servlet
servlet生命周期:init(一次),service(多线程,多次),destroy()
14.数据库
索引:通过索引查询数据可以加快查询速度
创建索引 create [UNIQUE] INDEX index_name ON table_name(attribute_list)
删除一个索引 DROP INDEX index_name
15.网站系统开发流程:
1)系统总体设计:网站要实现的功能
2)系统数据库设计:
3)系统基本框架:整个系统需要页面,页面的功能,分布在哪些文件夹下?
4)各功能模块的设计与实现:每个页面/功能的设计和实现
5)完善和美化系统:处理界面
6)部署和发布系统:
16.在jsp中引入css文件
<link href="**.css" rel="stylesheet" type="text/css">
getSession
17.taglib的使用:
说明:
1)在jsp中需要用@taglib 指定uri和prefix。例子中的prefix就是diego;uri可以两种方式,一种直接制定WEB-INF下的tld文件路径,另一种是
随便设定一个名字,然后在WEB-INF下的web.xml中使用下面说明来替换
<jsp-config>
<taglib>
<taglib-uri>abcdefghijk</taglib-uri>
<taglib-location>/WEB-INF/tlds/diegoyun.tld</taglib-location>
</taglib>
</jsp-config>
2)在tld中需要指定short-name就是prefix名,tag标签下有name就是在jsp正文中的后缀,tag-class是对应的类名
可以包含attribute属性,可以在jsp正文中传过来
3)在真正的tag类中可能要实现doStartTag和doEndTag方法
详见http://www.upschool.com.cn/edu/1324/2006/1020/10du230506_1.shtml一文
例子:MySecondJsp.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib uri="abcdefghijk" prefix="diego" %>
<%
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 'MySecondJsp.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>
Test Tag:<diego:out name="zhangcheng"/>
</body>
</html>
diegoyun.tld
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2/EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>diego</short-name>
<uri>http://www.newInstance.com/taglibs/site-utils</uri>
<tag>
<name>out</name>
<tag-class>diegoyun.OutputTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>
OutputTag.java
package diegoyun;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
/**
* @author chenys
*/
public class OutputTag extends TagSupport {
private String name = null;
public void setName(String name) {
this.name = name;
}
public int doStartTag() throws JspException {
try {
JspWriter out = pageContext.getOut();
out.print("Hello! " + name);
} catch (Exception e) {
throw new JspException(e);
}
return EVAL_PAGE;
}
}
再需要补充struts,javaScript,oracle部分,今晚把struts和javaScript看完
javaScript:
<script language="JavaScript" src="*.js">把需要加入的javaScript以文件形式提供
javaScript类型:数值,字符串,布尔,空类型和对象类型
变量类型定义用var
举例:<html>
<head>
<script language="JavaScript">
function example(){
document.write("helloworld!~");
}
</script>
</head>
<body >
<script language="JavaScript">
example();
</script>
</body>
</html>
函数,可以在函数定义时不指定参数,通过arguments和arguments.length来获取
JavaScript内部对象:
String,date,math,document,window
事件:鼠标事件,onMouseDown,onMouseUp,onClick,onMouseMove,onMouseOut,onMouseOver
比如:<input name="" type="button" onMouseDown="alert("")">
键盘事件:
onKeyDown,onKeyUp,onKeyPress
焦点事件:
onFocus,onBlur
调整窗口事件:
onResize
加载和卸载窗口事件:
onLoad,onUnload
其他:
onchange,onclick,onerror,onreset,onsubmit