当前位置: 代码迷 >> Web前端 >> Java Web 胡说八道 之一
  详细解决方案

Java Web 胡说八道 之一

热度:550   发布时间:2012-06-29 15:48:46.0
Java Web 胡言乱语 之一

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>
  相关解决方案