上周开始学习JSP,消化了几天,把学的东西在此整理了一下,如有纰漏还望大家多多指正!
2013.4.17第一次课收获:
不使用MyEclipse部署一个Web项目的两种方法:
1、打开tomcat进入到Webapps文件夹(所做的网站项目可以选择放在此文件夹中),在Webapps中新建一个文件夹作为根目录(文件名无要求,例MyFirstJSP),在MyFirstJSP中新建一个名为WEB-INF的文件夹(在此文件夹中新建名为classes的文件夹(放java源文件编译生成的.class文件)和名为lib的文件夹(放所需jar包)以及后缀为.xml的文档(名字随意,例web)),同时在MyFirstJSP中新建一个文本文档(后缀可以是html也可以是jsp,后缀为html在服务器运行后在tomcat的Work文件夹中MyFirstJSP目录下没有内容,jsp后缀则有内容),上述工作完成后便可启动服务器,在浏览器中输入http:\\localhost:8080\MyFirstJSP,回车便可看到我们刚才写的页面内容(附html文档代码:
<html>
<head>
<title>我的第一个页面 </title>
</head>
<body>
测试页面
</body>
</html>)
Jsp文档代码在html文档代码前加上
<%@ page language="java" contentType="text/html;charset=gb2312" %>
Jsp语言即可,并将web.xml代码中
<welcome-file>index.html</welcome-file>
html改为jsp
2、自建的项目(MyFirstJSP)未放在Webapps中,在tomcat文件夹中找到conf文件夹,打开server.xml文件,在<host> </host>中间加上代码:
<Context path="/first" docBase="e:\MyFirstJSP"/> docBase是MyFirstJSP项目所存放的位置,path将项目重命名。
使用MyEclipse并配置服务器tomcat,新建一个Web Project 工程
2013.4.19&&2013.4.20第二次课&&第三次课收获:
Servlet作用:在服务器端处理从页面传过来的请求
Servlet生命周期:在Web容器中,Servlet的实例只会被创建一次(不包括分 布式应用)
部署一个简单的Servlet:
我们编写的Servlet一般直接继承HttpServlet(注意不等同于Servlet,它是Servlet的一个常用扩展), 因为它封装了Http协议Servlet的大部分功能。
在WEB-INF\web.xml文件中配置这个Servlet,最主要是配置Servlet的名字、类,以及给这个Servlet作URL映射,客户通过这个映射来访问Servlet
指定名字和类
<servlet>
<servlet-name>wlcservlet</servlet-name>
<servlet-class>tom.jerry.WelcomeServlet</servlet-class>
</servlet>
作URL映射
<servlet-mapping>
<servlet-name>wlcservlet</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
从客户端发送请求有两种方式:get和post
get:通过浏览器地址栏发送的请求(参数会在地址栏显示)
post:使用form表单时,可以设置form表单的method=post,使用post方式发送请求
Html(Hypertest Markup Language:超文本标记语言):
基本格式(字母不区分大小写):
<HTML>
<HEAD>
<TITLE> 网页的标题 </TITLE>
</HEAD>
<BODY>
网页的内容,很多标记都作用于此
</BODY>
</HTML>
排版标记:
注释:<!--注释-->
作用:浏览器会忽略此标记中的文字(可以是很多行)而不作显示,使用目的: 为文中不同部份加上说明,方便日后修改用作版权声明。
换行:<BR></BR>
作用:令字、画、表格等显示于下一行。由于浏览器会自动忽略原始码中空白和换行的部分,这令<BR>成为最常用的标记之一。
水平线:<HR></HR>
作用:插入一条水平线,如:<HR align="LEFT" size="2" width="70%" color="#0000FF" noshade>
居中:<CENTER></CENTER>
作用:令字、画、表格等显示于中间。 (注意:结束标记)
预设格式:<PRE><PRE>
作用:令文件按照html原码的排列方式显示。这将允许我们保留原始码中输入的空白。
字体标记:<H1> 至 <H6>
作用:由 <H1> 至 <H6> 变粗变大加宽的程度逐渐减小。每个标题标记所标示的字句将独占一行且上下留一空白行。例:居中标题写法 <h1 style="text-align:center">欢迎来访</h1>或<center> <h1>欢迎 欢迎</h1> </center>
链接标记:<A></A>
<A> 与 </A> 所围的文字、图片等等均可以成为一个链接。
例如:<a href="index.html" name="hello" target="_blank"> index </a>
链接基准标记:<BASE>
作用:用以改变文件中所有链接标记的参数内定值。它只能放在文件的开头部分,即标记 <HEAD>与</HEAD> 之间,例如:<base href="http://www.microsoft.com/" target="_blank">
则该网页内所有<A>链接将以http://www.microsoft.com为基准的起点路径,并且新打开的网页会显示在一个新的浏览器窗口中。
Form表单:
<FORM>称为表单标记,属于一个容器标记,表示其它表单标记需要在它的包围中才有效,<INPUT>便是其中的一个,用以设定各种输入资料的方法。它是一个空标记。
<FORM> 的常用属性设置:
例:<form action="http://localhost/tag/example.jsp" method="POST">
action:表单提交的目的网页url
method:传送表单信息给目的网页的方式,可选值为POST, GET等。
<INPUT>的常用属性设置:其第一个参数type己有很多的选择(Text Password Submit Reset Radio Checkbox Image File等),而不同的选择表示不同的输入方式,且其它参数也会因此而异。
type=“Text“ 例:<input type="Text" name="age" value="20" align="MIDDLE" size="2" maxlength="255">
type=“Password” 例:<input type="Password" name="pw" value="999" align="MIDDLE" size="5" maxlength="9">
表格标记:<TABLE> 、<TR> 、<TD>、<TH>、<CAPTION>
<Table>的常设属性
Width:表格宽度,接受绝对值(如 80)或相对值(如 80%)
Border:表格边框厚度
Cellspacing:表格格线厚度
Cellpadding:文字与格线的距离
<TR>的常设属性
Align:该行内字画等的对齐方式(水平)
Valign:该行内字画等的对齐方式(垂直)
Bgcolor:该行底色
<TD>的常设属性
Width:该单元格宽度,可接受绝对值或相对值
Height:该单元格高度
Align:该单元格内字画水平对齐方式
Valign:该单元格内字画垂直对齐方式
Bgcolor:该单元格底色
<TH>
<TH>与<TD>同样是标示一个单元格,唯一不同的是<TH>所标示的单元格中的文字是以粗体居中出现,通常用于表格第一行显示表格字段名。
<CAPTION>
<CAPTION> 的作用是为表格增加一个标题行
在<input type =“。。。”>中加入如下代码可实现页面的跳转
例:<input type="button" value="返回" onClick="window.location.href=''">
(''为空则返回到跳转到此页面的页面中,也可以在''中加上想要跳转的页面名)
<td><input type="submit" value="提交" onclick="window.open('MyJsp.jsp')">
(点击按钮直接跳转到MyJsp.jsp页面)
JSP语法简介:
Html注释:<!-- <%=new java.util.Date()%> -->之间
——JSP引擎会把HTML注释交给客户,客户通过浏览器查看源文件时,能够看到html注释。
JSP注释:<%-- 和 --%> 之间
——JSP引擎忽略JSP注释,当然不会发送给客户。
Java程序片中的注释完全同java程序的注释,可以用://, /* */
指令标签:
page指令:
用来定义整个jsp页面的一些属性和这些属性的值,属性的值一般用双引号括起来,例:
<%@ page contentType=“text/html;charset=gb2312” import=“java.util.*” %>
如果要为一个属性指定多个值的话,这些值用, 隔开。事实上,page指令只能给import属性指定多个值,其他属性只能指定一个值,例:
<%@ page contentType=“text/html;charset=gb2312” import=“java.util.*, java.io.*, java.awt.*” %>
Page指令对整个页面有效,与其书写的位置无关,但习惯上把page指令写在jsp页面最开始。
page指令可设置的页面属性有:
1、language属性:
定义jsp页面使用的脚本语言,目前只能取值为java,即:<%@ page language=“java” %> 此指令在jsp页面中已默认存在
2、 import属性
在jsp页面中引入java类,jsp页面默认import属性已经有了如下值:
java.lang.*, javax.servlet.*, javax.servlet.jsp.*, javax.servlet.http.*
3、contentType属性
定义jsp页面响应的MIME(Multipurpose Internet Mail Extension)类型和JSP页面字符的编码,属性值一般形式为:”MIME类型; charset=编码”, 如:
<%@ page contentType=“text/html;charset=gb2312” %>
contentType默认为: text/html; charset默认为ISO-8859-1
4、 session属性
设置是否需要使用内置的session对象,默认为true
5、buffer属性 <img src=“/a.jpg”>
内置输出流对象out的缓冲区大小,默认为8kb,可设置为”none”,如:
<%@ page buffer=“64kb” %>
6、autoFlush属性
out是否可自动刷新,默认值为true
7、 isThreadSafe属性
Jsp页面是否可多线程访问,默认值为true,可同时响应多个客户;如果设置为false,则jsp页面同一时刻只能处理一个客户的请求,其他客户需要排队。
8、 pageEncoding <%@ page pageEncoding=“gb23120”%>
<%@ page contenType=“;charset=gb2312”%> JSP页面的字符编码,默认为iso8859-1
9、 isELIgnored
表达式语言${…}在页面中是否被忽略,默认为true
10、errorPage
定义此页面出现异常时调用的页面,默认忽略,如:
<%@ page errorPage=“error/error.jsp” %>
11、 isErrorPage属性
表明当前也是否为其他页的errorPage目标,如果被设置为true,则可以使用exception对象,反之则不可以使用exception对象,如:<%@ page isErrorPage=“true” %>
exception.getMessage() exception.printStackTrace();
Include指令:
在此指令出现的地方整体静态嵌入一个文件,使用格式:<%@ include file=“要嵌入的文件的名字” %>
(注意:插入的文件必须是可访问(存在)和可使用的,插入的内容已被转译到了jsp对应的java文件中,所以在tomcat服务期间对被插入的文件作修改后并不能体现效果,除非重新启动tomcat,或者简单更新并重新保存该jsp文件,这样的话可产生新的转译java文件。) >>不能使用表达式<<
Include动作指令:
使用格式:<jsp:include page=“文件的名字" />
其功能是动态包含一个文件,即jsp页面运行时才将文件加入:与前面的include指令不同,当jsp引擎将jsp页面转译成java文件时,不把jsp页面中的include动作标签所包含的文件与原文件合并成一个jsp页面,而是告诉java编译器,当这个文件在jsp运行时(java文件的字节码文件被加载执行时)才被包含进来。因此jsp页面与它所包含的文件在逻辑和语法上是独立的,如果对所包含的文件进行了修改,运行时能立刻看到包含文件修改后的结果。 >>可以使用表达式<<