jsp基础

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值