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>