Web应用和web.xml文件配置教程。
一、构建Web应用:
1、在任意目录下创建一个文件夹。
2、在第1步所建的文件夹内建一个WEB-INF文件夹(注意大小写)。
3、进入Tomcat或任何其他web容器内,找到任何一个web应用,将Web应用的WEB-INF下的web.xml文件
复制到第2步所建的文件夹下。
4、修改复制后的web.xml文件,将该文件修改成只有一个跟元素的XML文件,如下。
<?xml version="1.0" encoding="GBK"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> </web-app>
在WEB-INF文件下新建两个文件夹:classes和lib。
classes文件夹:保存单个*.class文件;lib文件夹:保存打包后的JAR文件。
5、把该web应用复制到Tomcat的webapps路径下。通常我们只要将jsp放在web应用的根目录下,就可以通过浏览器来访问这些页面了。
<webDemo>———这是应用的名称,可以改变
|-WEB-INF
| |-classes
| |-lib
| |-web.xml
|-<*.jsp>
JSP的基本原理:
jsp的本质是servlet。jsp通过在标准的HTML页面中嵌入java代码,其静态的部分无需Java程序控制,只有那些需要从数据库读取或需要
动态生成的的页面内容,才使用Java脚本控制。
jsp页面内容:
>静态部分:标准的HTML标签、静态的页面内容,这些内容与静态HTML页面相同。
>动态部分:受Java程序控制的内容,这些内容由Java程序来控制。
<%@ page language="java" contentType="text/html; charset=UTF-8" language = "java" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>这是一个jsp页面代码</title> </head> <body> 欢迎进入<br> 现在是时间是: <%out.println(new java.util.Date()); %> </body> </html>
注意:JSP的本质依然是servlet,每个JSP页面就是一个Servlet实例——JSP页面有系统编译成Servlet,Servlet再负责响应用户请求。
JSP的工作原理:
Client →发出请求→ JSP Server(如果该JSP页面第一次收到请求,先编译JSP文件,生成对应的Servlet,如果该JSP页面已有对应的
←返回标准的HTML页面← 的Servlet,这根据请求动态生成标准的HTML页面。注:每次都会根据请求动态生成HTML文档。)
1、JSP文件必须在JSP服务器内运行。
2、JSP文件必须生成servlet才能执行。
3、每个JSP页面的第一个访问者速度很慢,因为必须等待JSP编译成Servlet。
4、JSP页面的访问者无须安装任何客户端,甚至不需要可以运行的Java的运行环境,因为JSP页面输送到客户端的是标准HTML页面。
JSP注释:
JSP注释格式: <%– 注释内容 –%>
而HTML注释格式:<!– 注释内容 –>
HTML的注释可以通过源代码查看到,但JSP的注释是无法通过源代码查看到的。这表名JSP注释不会被发送到客户端。
JSP声明:
JSP声明用于声明变量和方法。JSP声明的语法格式如下:
<%! 声明部分 %>
<%@ page language="java" contentType="text/html; charset=UTF-8" language = "java" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>这是一个jsp页面</title> </head> <!-- 下面是JSP声明部分 --> <%! // 声明一个变量 public int count = 0 ; // 声明一个方法 public String info() { return "hello : " + count ; } %> <body> <!-- 每次刷新count的值都会加1 --> <% out.println(++ count) ; %><br/> <% out.println(info()) ; %> </body> </html>
输出JSP表达式:
输出表达式值的语法格式: <%=表达式>
输出表达式将转换成Servlet里面的输出语言。
JSP脚本:
JSP脚本中可以放置任何可执行性语句,所以可以充分利用Java语言的功能,例如连接数据库和执行数据库。
例子:
<%@page import="java.sql.*"%> <%@page language="java" contentType="text/html; charset=UTF-8" errorPage=""%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <head> <title>连接数据库脚本测试</title> </head> <body> <table bgcolor = "yellow" border = "1" width = "300px"> <% // 注册数据库驱动 Class.forName("com.mysql.jdbc.Driver") ; // 获取数据库连接 Connection conn = DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/select_test","root","hezuoan") ; // 创建Statement Statement stmt = conn.createStatement() ; // 查询 ResultSet rs = stmt.executeQuery("select * from student_table") ; while(rs.next()) { %> <tr> <td><%=rs.getString(1)%> </td> <td><%=rs.getString(2)%> </td> <td><%=rs.getString(3)%> </td> </tr> <% } %> </table> </body>
(执行SQL查询需要使用MySQL驱动程序,将驱动的JAR文件放在Tomcat的lib路径下。)
JSP的三个编译指令:
> page :该指令是针对当前页面的指令。
> include :用于指定包含另一个页面。
> taglib :用于定义和访问自定义标签。
格式如下:<%@ 编译指令名 属性名=”属性值”… %>
一、page 指令:
page指令通常位于JSP页面的顶端,一个JSP页面可以使用多个page指令。语法格式如下:
<%@page
[language="Java"]
[extends= "package.class"]
[import = "package.class|package.*..."]
[session= "true|false"]
[buffer = "none|8KB|size Kb"]
[autoFlush = "true|false"]
[isThreadSafe = "true|false"]
[info = "text"]
[errorPage = "relativeURL"]
[contentType = "mimeType[; charset = characterSet]“|”text/html ; charset = ISO-8859-1″]
[pageEncoding = "ISO-8859-1"]
[isErrorPage = "true|false"]
%>
各指令的属性定义:
language : 声明当前JSP页面使用的脚本语言的种类,通常默认是Java 。
extends : 指定JSP页面编译所产生的Java类所继承的父类,或所实现的接口。
import : 导入包。 (下面几个包是系统默认导入的:java.lang.* ; javax.servlet.*; javax.servlet.jsp.*;javax.servlet.http.* ;)
session : 设定这个JSP页面是否需要HTTP Session。
buffer : 指定输出缓冲区的大小。
autoFlush : 当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。
info : 设置该JSP程序的信息,也可以看做其说明,可以通过Servlet.getServletInfo()方法获取。
errorPage : 指定错误处理页。
isErrorPage : 设置本JSP页面是否为错误处理程序。
contentType : 用于设定生成网页的文件格式和编码字符集,即MIME类型和页面字符集类型。
默认的MIME类型是 text/html ;默认的字符集类型为ISO-8859-1.
PageEncoding :是定生成网页的编码字符集。
二、include指令
使用include指令,可以将一个外部文件嵌入到当前JSP文件中。语法格式:
<%@include file = “relativeURLSpec”%>
参考的书本:<轻量级Java EE 企业应用实战>