JSP新手启航(一)JSP语法

    学了4个月的JAVA以后 终于开始学JSP了  一边看书 一边调程序 一边上CSDN查文档 4天时间过去以后 觉得自己有了质的飞跃 CSDN上面虽然文档很多 但是都是各说各的 相同的问题解决的方法层出不穷 查文档时就算找到了能解决自己问题的 也不一定适合自己 系统 配置 对JSP知识的了解深度 不同 解决的方法就不同 前后连贯性不够 除非自己的理解能力相当强 否则是很难仅仅通过这些文档达到统一学习的目的
我把自己这3天的学习过程写下来 相信对自己和刚开始学JSP的新手能够有所帮助
第一章 JSP语法


0.注释
    <!--Copyright(c)TCP_IP,All rights reserved.-->发给客户端的注释 不显示
    <%--comment--%>是不发送给客户端的 但会在客户端留下空行 隐藏注释
1.声明 
    <%! variable and method %>是不产生输出的 可以在标记中声明变量和方法
2.JSP表达式 会在客户端显示的 隐式转换 转成toString
    <%= expression %> 不需要最后那个;号 标记中可以加入一段Java表达式
3.脚本段 用来包含一个JAVA程序段
    <% code fragment %>完全符合java语言规范 可以在里面书写Java源程序
4.包含指令
    <%@ include file="relativeURL" %> 在JSP中包含一个static文件
static文件时指:不包含需要执行的java程序的文件,如:HTML或者不包含Java程序的JSP
例如<%@ include file="beIncluded.jsp" %>
包含了上述代码的JSP文件,会在文件中静态展开beIncluded.jsp
包含文件种不能使用<html> </html> <body> </body>
被包含的文件必须有效 被包含的文件被改变 包含他的JSP会被重新编译
5.page指令
    定义JSP文件种的全局属性 []表示 page中可写的指令
 <@ page [language="java"] [extends="package.class"][import=""]
 //java.lang.*; javax.servlet.*; javax.servlet.jsp.*; javax.servlet.http.*;都是已经导入了的 所以不用import来导入了
 [session="true|false"] 设定客户是否需要HTTP Session
 session为true则对同一个用户的访问看成一个session
 [buffer="none|8kb|sizekb"]8kb是缺省
 out对象处理的输出 缓冲区大小
 [autoFlush-"true|false"] 刷新缓冲区
 如果buffer溢出 是否需要强制输出 true输出 false发生异常
 [isThreadSaFe="true|false"]
 设置JSP文件是否能够多线程使用 相应多个请求 ture缺省
 [info="text"]
 描述信息
 [errorPage="relativeURL"] 设置处理异常的JSP文件
 [isErrorPage="true|false"]是否为错误处理页,如果是,可以使用exception对象
 [contentType="mimeType[;charset=characterSet]"|text/html;charset=ISO-8859-1"]
 设置MIME类型 缺省是text/html 缺省字符集为 ISO-8859-1
 <%@ page %>作于整个JSP页面 不能作用于动态包含文件
6.taglib指令
     定义一个标签库 及前缀
<%@ taglib uri="URITOTagLibrary" prefix="tagPreFix" %>
不要用jsp jspx java javax servlet sun sunw做前缀
taglib指令可以多次使用 但前缀只能用一次 
例如: 
<@ taglib uri="http://" prefix="public" %>
<html>
<body>
<public:loop>
<%--执行代码--%>
</public:loop>
<body>
<html>

7.<jsp:forward>
    与Response的SendRedirect()不同 SendRedirect()会把url地址发送给客户端 询问是否转向
<jsp:forward>是在服务器端强制转向
重定向到一个JSP文件、HTML文件或者一个程序段
<jsp:forward page={"地址"|"程序段"}/>无参数的
带参数的:
<jsp:forward page={"地址"|"程序段"}>
<jsp:param name=""
value="{parametervlaue|"程序段"}"
 ......
</jsp:forward>

它后面的代码将不会执行
8.<jsp:useBean>
    创建一个Bean实例并指定名字和作用范围
语法格式:
<jsp:useBean
id="beanInstanceName" 标识=Bean实例名称(不存在时创建,已存在时声明要使用)
scope="page|request|session|application" 有效范围 page表示JSP文件 这个Bean在这个jsp文件以及这个文件所包含的静态文件中有效
request表示请求对象 表示在这个请求范围之内有效 任何执行相同请求的JSP文件都能使用这个Bean
session 这个Bean于用户会话的生存期相同(必须有session="true") application 从服务器启动到终止一直有效
{ class="package.class"| 说明了这个Bean的出生 由哪个类构造而成 new方法
type="package.class"| 说明了这个Bean的出生 但这个Bean已经存在
class="package.class" type="package.class"| type的值可以于Bean相同 也可以是他的基类 或者实现了相同的接口
beanName="{package.class|<%=expression%>}" type="package.class" 使用java.beans.Beans.instantiate方法来创建实例 其中的表达式应表示的是一个返回类型
 beanName可是package和class 也可以是表达式
 }
 {/>|
 >other elements</jsp:useBean>}
 实例:
 I.<jsp:useBean id="cart" scope="session" class="session.Carts"/>
 II.<jsp:useBean id="" scope="" class="bank.Checking">
<jsp:setProperty name="" property="" value="0.0"/>
</jsp:useBean>
9.<jsp:setProperty>
    设置Bean的属性
语法格式:
<jsp:setProperty>
         name="beanInstanceName"   Bean实例的名称 必须已经存在
         {
         property="*"|储存用户输入的所有值 用于匹配Bean中的属性 来自请求对象
         property="propertyName"[param="parameterName"]| 用一个参数值来设定对应的属性值 参数值来自requset
         property="propertyName" value="string|<%= expression%>}" 用指定的属性值进行设置 不用请求对象的匹配
         PS:如果参数值为空值,那么对应的属性值不会被设定 param和value 不能同时出现
         }
/>
10.<jsp:getProperty> 
    获取Bean的属性 用于在页面中显示
<jsp:getProperty name="beanInstanceName" property="propertyName"/>自动实行toString类型转换
8.9.10.以上三个是与Bean操作相关的属性
11.<jsp:include>
    先进行分析 是动态文件还是静态文件 根据不同有不同的表现 如果有动态的java 返回处理结果
包含一个静态或动态的文件
语法格式:
I. <jsp:include page="{relativeURL|<%=expression%>}" flush="true"/>
II.<jsp:include page="{relativeURL|<%=expression%>}" flush="true">
   <jsp:param name="" value="{parameterValue|<%=expression%>"/>
   //上面一行可重复可重复
   </jsp:include>

 page 表示JSP文件的相对路径或者代表相对路径的表达式
 flush="true"是必须的 但缺省为false
12.<jsp:plugin>
    插入一个applet或Bean,必要的话还要下载一个Java插件用于执行
语法格式:
<jsp:plugin
    type="bean|applet" 将被执行的插件对象的类型
    code="classFileName" 插件的类名 必须以.class结尾
    codebase="classFileDirectoryName" 被执行的java class文件的目录 
    [name="instanceName"] 这个Bean或applet实例的名字 它将会在JSP其他的地方调用
    [archive="URIToArchive,..."] 由逗号分开的路径名 用于预装一些将要使用的class
    [align+"bottom|top|middle|left|right|]  位置
    [height="displayPixels"] 高
    [width="displayPixels"]  宽 象素
    [hspace="leftRightPixels"]  水平边距
    [vspace="topBottomPixels"]  垂直边距
    [jreversion="JREVerssionNumber|1.1"] 所需的JRE版本号
    [nspluginurl="URLToPlugin"]  Netscape Navigator用户能使用的JRE下载地址
    [iepluginurl="URLToPlugin"]> IE用户能使用的JRE下载地址
    [<jsp:params> 需要向applet或Bean传送的采纳数或参数值
     [<jsp:param name="" value=""/>]
    </jsp:params>]
    [<jsp:fallback>text message for user</jsp:fallback>] 不能启动时的替代消息
</jsp:plugin>
<jsp:plugin>将根据版本的不同替换 <boject>或<embed>元素
13.内置对象综述 
    JSP是大小写敏感的 这些内置对象+JavaBeans 可以构建应用项目了
内置对象是由特定的JAVA类生成的
9种内置对象 每种内置对象的第一行的第3个参数表示作用域 如下行
request  javax.servlet.ServletRequest的子类 作用域:request
请求对象,代表的时来自客户端的请求,客户端在form中的请求,进入页面之前就产生了 
这个对象有自己的Buffer
以下是它的方法:

  request.getParameter("")获取一个指定名称的参数
  getAttribute(name) getAttributeNames getCharacterEncoding()
  getContentLength() getContenType() getParameterNames()获取所有参数名称
  getParameterValues(name) getProtocol() getInputStream()
  getScheme()获取请求的模式
  getServerName() getServerPort() getReader()返回对Buffered进行字符型读取的对象
  getRemoteAddr()
  getRemoteHost() setAttribute(String key,Object o)
  getSession(boolean)() boolean isRequestedSessionId Valid有效性|FromCookie|FromURL
  getCookies() getServletPath()实际工作路径 getRequestedSessionId() 与session对象进行交互的方法response javax.servlet.ServletResponse的子类 page 不同的引擎可能产生不同的子类
  响应对象 代表对客户端的相应 组织发送到客户端的数据 进入页面之前就已经产生 也有Buffer 以及方法
  getCharacterEnconding() getWriter() setContentLength(int)
  setContentType(String) getOutputStream() addCookie(Cookie) containsHeader(String)添加头部域
  encodeURL(String)对URL进行编码 encodeRedirectURL(String)对重定向URL编码
  sendError(int src,String)
  sendRedirect(String)发送重定向的url setDateHeader(String,long)设定特定的日期头部域
  setStatus(int src)设定状态码
  setHeader(String name ,String value)设定指定名称的头部域 setIntHeader(name,int value)设定头部域的整形值
pageContext  javax.servlet.jsp.PageContext   page
页面上下文对象 当前页面运行的一些属性 Attribute(属性)自定义的一些变量 在有效范围内可以自己使用这些属性 不需要用到JAVA语言其他的一些方法
   findAttribute()查找某个属性 getAttribute() setAttribute(String name,Object,<int scope>) getAttirbutesScope()获取属性的有效范围
   getAttributeNamesInScope()获取有效范围内的属性名称
   initalize(Servlet this,request,response,String errorPageURL,boolean needsSession,int bufferSize,boolean autoFlush);初始化方法
   release()释放所有引用 removeAttribute()
 可以通过 getOut() getSession() getPage() getRequest() getResponse() getException() getServletConfig() getServletContext()获得其他内置对象
 forward(UrlPath) include(UrlPath) handlePageException(Exception e)用来处理未处理过的错误
session  javax.servlet.http.HttpSession  session
   会话对象 代表服务器与客户端建议的会话 建立在Cookie之上 客户端必须打开Cookie
   getCreationTime() getId() getLastAccessedTime()最后一次访问的时间 getMaxInactiveInterval()最大间隔
   setMaxInactiveInterval(int) getValue(name) String[] getValueNames()
   invalidate()使一个特定的session对象跟用户断开 boolean isNew()判断用户是否打开了Cookie功能
   putValue(name,obj value) removeValue(name) //全部要求掌握
   与Cookie对象一起来处理 获取request.getCookies() 设置response.setCookies() 
application javax.servlet.ServletContext  application
   应用程序对象 负责提供应用程序在服务器种运行的一些全局信息 是一个运行环境
   ServletContext getContext(urlpath)特定URL的Context
   getMajorVersion()返回ServletAPI的主版本号 getMimeType(file)返回MimeType
   getMinorVersion()获得次一级的版本号 java.net.URL getResource(path)throws java.net.MalformedURLException获得指定路径资源的URL
   java.io.InputStream getResourceAsStream(path)
   RequestDispathcer getRequestDispatcher(urlpath) 以上两个方法把指定的资源分别包装成不同的类型返回
   log(msg)(msg,throwable)把指定的信息记录到日志文件
   getRealPath(path) 转换虚拟路径与实际路径的对应关系
   getServerInfo() getAttribute(name) getAttributeNames() setAttribute(name,obj) removeSAttribute(name)
out   javax.servlet.jsp.JspWriter   page
   输出对象 发送给客户端的文本数据 浏览器不认println的换行 在外部加<pre>标记可以保持原来的输出样式
   newLine()输出换行符 自带有一个buffer
   config  javax.servlet.ServletConfig   page
   配置对象 提供一些配置信息 使用它获取一些初始化配置信息
   getInitParameter(String) getInitParameterNames()返回类型是Enumeration类型
   getServletContext() 返回的是application对象
page  java.lang.Object     page
   页面对象 正在运行的由JSP文件产生的类对象 Object page=this
   getClass() hashCode() equals(obj) clone()throws CloneNotSupportedException
   toString() notify() notifyAll() wait(......)throws InterruptedException
   finalize()throws Throwable
exception java.lang.Throwable     page     
   例外对象 JSP运行时所产生的例外对象
   getMessage()后无错误对象信息 getLocalizedMessage() 和前基本相同 处理一些本地字符集
   toString() 对象实际类名+":"+getMessage()
   printStackTrace()错误栈轨迹 printStackTrace(PrintStream s)(PrintWriter s)
   fillInStackTrace()填充栈轨迹 重抛时有用
  在work种生成了上面的对象
14.JavaBeans
    的特征:
 a.内省(Introspection):
  使组件可以发表其支持的操作的属性和机制,也是支持在其他组件中发现这种机制的机制。
 b.属性(Properties):
  在手机Bean时可以改变的外观和行为特征。
 c.定制(Customization):
  Bean通过发布其属性使其可以在实际时被定制。
 d.通信(Communication):
  Beans通过时间互相通信
 e.持续(Persistence):
  使Bean可以存储和恢复其状态。
 的属性:<jsp:useBean> 创造实例 也可以在<% new Bean%>
 <jsp:setProperty> <jsp:getProperty>
 JSP中的Bean 像一种纯粹的java类
 executeUpdate中调用的String对象 是不能用""包含的,要用+来连接 而SQL语言的正文部分要用""包含 而插入语句本身的''不要忘记写
 实现功能封装
15.Servlet与JSP
    在用tomcat做JSP服务器的时候Work文件夹下面对应的就是Servlet webapps文件夹下面对应的就是JSP
 每个JSP都对应了一个Servlet,通过Servlet去完成用户的request
 Servlet是可以处理用户请求的特殊的Java Class 必须满足一些条件(运行环境)
 javax.servlet.*
 interface Servlet 包含了init(config) service(request,response) destroy() getServletConfig() getServletInfo()通过实现他完成请求
 以下接口和JSP的对应
 ServletConfig--config   ServletContext--application ServletRequest---Request   ServletResponse---Response 
 RequestDispatcher包含forward(req,res)---<jsp:forward>     include(req.res)---<jsp:include>
 javax.servlet.http.*
 javax.servlet.jsp.*
 GenericServlet的开发
 抽象类GenericServlet实现了很多接口  有一个abstract void service(req,res)
 import java.io.*;
 import java.util.*;
 import javax.servlet.*;
 public class HelloServlet extends GenericServlet 必须要重写service(req,res)方法
 doget dopost都会被service调用
16.JDBC
    SQL语言 动词 SELECT INSERT UPDATE DELETE CREATE DROP GRANT REVOKE
 DDL数据定义: CREATE ALTERD DROP
 DML数据操作: SELECT INSERT DELETE UPDATE
 JDBC结构
 Java Application --JDBC API(java.sql.*)--JDBC Manager--JDBC Driver API
 模式与步骤
 a.加载驱动程序 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 b.建立连接 Connection con=DriverManager.getConnection("jdbc:odbc:MyOdbcDSN");
 c.创建语句对象 Statement stmt=con.createStatement();
 b.执行查询语句 创建结果集对象 ResultSet rs=stmt.executeQuery("select*from tableName");
 e.查询结果处理 关闭结果集对象 rs.close();
 f.关闭语句对象 stmt.close();
 g.关闭连接 con.close;



http://blog.csdn.net/TCP_IP/services/trackbacks/263934.aspx                                                                

                                                                                                               TCP_IP                   2005年1月22  17:36:54

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值