Tomcat安装及配置篇
1,tomcat安装前,防火墙必须关闭。避免意外问题发生。
2,tomcat 目录介绍:
1》 bin -- 所有的可执行命令,启动和关闭服务器的命令就在此文件夹之中
2》 conf -- 服务器的配置文件夹,里面保存了各个配置信息
3》 lib --- Tomcat服务器所需要的各个库文件
4》 logs-- 保存服务器的系统日志
5》webapps -- web应用程序存放的目录,web项目保存到此目录中即可
6》work -- 临时文件夹,生成所有的临时文件(*.java, *.class)
JSP注释
1,显示注释语法
<!-- 注释内容 -->
2,隐式注释语法
//注释, 单行注释
/* 注释*/ 多行注释
<%-- 注释 --%> JSP注释
前两种隐式注释风格是从 java中演变而来。
-----------------------------------------------------------------
Scriptlet
1,在Jsp中最重要的部分就是Scriptlet(脚本小程序)
1》 <%%>:在此Scriptlet中可以定义局部变量,编写语句
2》<%!%>:在此Scriptlet中,可以定义全局变量,方法,类
3》<%=%>:用于输出一个变量或一个具体内容
<%
int x =10; //定义局部变量
String info="www.baidu.com";
out.println("<h2>x = " + x+ "</h2>"); //语句
out.println("<h2>x = " + info+ "</h2>");
%>
<%!
public static final String INFO= "www.baidu.com";
%>
<%!
public int add(int x ,int y){
return x +y;
}
%>
<%
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String toString(){
return "name = "+this.name + ",age = "+
this.age;
}
}
%>
<%
out.println("<h3>INFO = " + INFO +"</h3>");
out.println("<h3>3 + 5 = " + add(3,5) +"</h3>");
out.println("<h3>" + new Person("zhangsan",30) +"</h3>");
%>
<html>
<head><title>www.baidu.com哎呦范德萨发生</title></head>
<body>
<%
int rows =10;
int cols =10;
%>
<table border="1" width="100%">
<%
for(int x =0;x<rows;x++){
%>
<tr>
<%
for(int y =0;y<cols;y++){
%>
<td><%=x*y%></td>
<%
}
%>
</tr>
<%
}
%>
</table>
<%
");
%>
</body>
</html>
识记 :标签指令必须完结。
JSP开发中尽量使用表达式输出的语法来取代out.println().
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Page指令使用
1,设置MIME类型
<%@ page language="java"
contentType="application/msword;charset=GBK"%>
<html>
<head><title>www.baidu.com,这是一个学习的好网站</title></head>
<body>
<%
response.setHeader("Content-Disposition","attachement;filename=hello_01.docx");
%>
<table>
<tr><td>生发生的发生大幅四大发发生的发生大幅四大发</td></tr>
<tr><td>团我让他核桃仁和让他和让他忽然</td></tr>
<tr><td>特瓦尔维尔热热热沃尔沃让我额</td></tr>
</table>
</body>
</html>
JSP中,如果 pageEncoding存在,那么JSP的编码将有pageEncoding决定,如果不存在才有charset决定,如果都不存在了,那么使用IOS-8859-1编码.
2,错误页的设置
满足以下两个条件:
1 指定错误出现时的跳转页,通过errorPage属性指定。
2 错误处理页必须有明确的标识,通过isErrorPage属性指定.
概念:地址栏不改变的跳转,称为服务器端跳转
<error-page>
<error-code>500</error-code>
<location>/basic_page/error.jsp</location>
</error-page>
<error-page>
<error-code>java.lang.NullPointerException</error-code>
<location>/basic_page/error.jsp</location>
</error-page>
3,导入包的操作
import能够出现多次,连接数据库:
<%@ page language="java"
contentType="text/html" pageEncoding="GBK"%>
<%@ page import = "java.sql.*;"%>
<html>
<head><title>www.baidu.com,这是一个学习的好网站</title></head>
<body>
<%!
public static final String DBDRIVER =
"org.gjt.mm.mysql.Driver";
public static final String DBRUL =
"jdbc:mysql://localhost:3306/luckDb";
public static final String DBUSER = "root";
public static final String DBPASS = "123456";
%>
<%
Connection conn = null ;
PreparedStatement pstmt = null;
ResultSet rs = null ;
%>
<%
try {
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBRUL,DBUSER,DBPASS);
String sql = "SELECT empno,ename,job,sal,hiredate FROM emp";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
%>
<center>
<table border = "1" width="80%">
<tr>
<td>雇员编号</td>
<td>雇员姓名</td>
<td>雇员工作</td>
<td>雇员工资</td>
<td>雇员日期</td>
</tr>
<%
while(rs.next()){
int empno =rs.getInt(1);
String ename=rs.getString(2);
String job = rs.getString(3);
float sal = rs.getFloat(4);
java.util.Date date = rs.getDate(5);
%>
<tr>
<td><%=empno%></td>
<td><%=ename%></td>
<td><%=job%></td>
<td><%=sal%></td>
<td><%=date%></td>
</tr>
<%
}
%>
</table>
</center>
<%
}catch(Exception e){
System.out.println(e);
}finally{
rs.close();
pstmt.close();
conn.close();
}
%>
</body>
</html>
**********************************************************************************
3,包含指令
分为两种包含指令:
方法一:再每一个JPS页面(HTML)都包含工具栏,头部信息,尾部信息,具体内容.
方法二:将工具栏,头部信息,尾部信息都分成各个独立的文件,以后用的时候直接导入进来.
静态包含: <%@ include file="要包含的文件路径"%>
动态包含: <jsp:include>指令可以完成动态包含的操作,与静态包含不同的是,动态包含语句,可以自动区分被包含的
页面是静态还是动态。
1>不传递参数:<jsp:include page="{要包含的文件路径|<%=表达式%>}" flush="true|false">
2>传递参数: <jsp:include page="{要包含的文件路径|<%=表达式%>}" flush="true|false">
<jsp:param name="参数名称" value="参数内容"/>
....可以向北包含页面中传递多个参数
<jsp:include>
区别: 静态包含属于先包含后处理,那么如果现在使用的是动态包含呢?
动态包含是 先处理后包含,包含的是处理后的结果
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
语法:<jsp:forward>指令,将一个用户的请求从一个页面传递到另外一个页面。
<%@ page language="java"
contentType="text/html" pageEncoding="GBK"%>
<%@ page import = "java.sql.*;"%>
<html>
<head><title>www.baidu.com,这是一个学习的好网站</title></head>
<body>
<%
String username = "douglaso";
%>
<jsp:forward page="forward_demo02.jsp">
<jsp:param name="name" value="<%=username%>"/>
<jsp:param name="info" value="www.baidu.com"/>
</jsp:forward>
</body>
</html>