【Java EE (Struts2 + Spring + Hibernate)开发】:Web 之 【JSP基础知识】

【Java EE (Struts2 + Spring + Hibernate)开发】:Web 之 【JSP基础知识】
本文地址:http://blog.csdn.net/shanglianlm/article/details/49975541

1 JSP 的基本原理

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title> 第二个JSP页面 </title>
    <meta name="website" content="http://www.crazyit.org" />
</head>
<body>
<!-- 下面是Java脚本 -->
<%for(int i = 0 ; i < 7; i++)
{
out.println("<font size='" + i + "'>");
%>
疯狂Java训练营(Wild Java Camp)</font>
<br/>
<%}%>
</body>
</html>

这里写图片描述

这里写图片描述
这里写图片描述

1-1 JSP 注释

 <%-- 注释内容 --%>

HTML 注释

 <!-- 注释内容 --%>
<body>
  注释示例
  <!-- 增加JSP注释 -->
  <%-- JSP注释部分 --%>
  <!-- 增加HTML注释 -->
  <!-- HTML注释部分 -->
</body>

1-2 JSP 申明

JSP 申明用于申明变量和方法。

<%! 申明部分 %>
<head>
    <title> 声明示例 </title>
    <meta name="website" content="http://www.crazyit.org" />
</head>
<!-- 下面是JSP声明部分 -->
<%!
  //声明一个整形变量
  public int count;
  //声明一个方法
 public String info()
 {
    return "hello";
 }
%>
<body>
<%
  //将count的值输出后再加1
  out.println(count++);
%>
<br/>
<%
  //输出info()方法的返回值
  out.println(info());
%>
</body>

这里写图片描述

1-3 输出 JSP 表达式

<%= 表达式 %>
<%!
  public int count;
  public String info()
 {
    return "hello";
 }
%>
<body>
 <!-- 使用表达式输出变量值 -->
 <%=count++%>
<br/>
 <!--  使用表达式输出方法返回值 -->
 <%=info()%>
</body>

这里写图片描述

1-4 JSP 脚本

通常来说,所有可执行的 Java 代码都可以通过 JSP 脚本嵌入到 HTML 页面中。

在 JSP 脚本中可以申明变量,但申明的变量都是局部变量,不能使用 private,public 等访问修饰符修饰,也不可以使用 static 修饰。

<body>
<%
  //注册数据库驱动
  Class.forName("com.mysql.jdbc.Driver");
  //获取数据库连接
  Connection conn = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/javaee","root","32147");
  //创建Statement
  Statement stmt = conn.createStatement();
  //执行查询
  ResultSet rs = stmt.executeQuery("select * from news_inf");
%>
<table bgcolor="#9999dd" border="1" width="300">
<%
  //遍历结果集
  while(rs.next())
 {
%>
    <tr>
        <!-- 输出结果集 -->
        <td><%=rs.getString(1)%></td>
        <td><%=rs.getString(2)%></td>
    </tr>
<%}%>
<table>
</body>

2 JSP 的 3 个编译命令

2-1 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"]
%>

这里写图片描述

2-2 include 指令

这里写图片描述

<% @include file="relativeURLSpec" %>
<body>
<!-- 使用include编译指定导入页面 -->
<% @include file="scriptlet.jsp"%>
</body>

如果被嵌入的文件经常需要改变,建议使用 操作命令。

2-3 taglib 指令

3 JSP 的 7 个动作指令

这里写图片描述

3-1 forward 指令

forward 指令用于将页面响应转发到另外的页面(静态的HTML, 动态的 JSP 和 容器中的 Servlet)。

<jsp:forward page="{relativeURL|<%=expression %>}">
    <jsp:param ... />
</jsp:forward>
<jsp:forward page="forward-result.jsp">
    <jsp:param name="age" value="29"/>
</jsp:forward>

下一个页面使用 request 内置对象来获取增加的请求参数值。

<!-- 使用request内置对象获取age参数的值 -->
<%=request.getParameter("age")%>

这里写图片描述

3-2 include 指令

这里写图片描述

<jsp:include page="{relativeURL|<%=expression %>}" flush="true" />

<jsp:include page="{relativeURL|<%=expression %>}" flush="true">
     <jsp:param name="parameterName" value="parameterValue" />
</jsp:include>
<!-- 使用动态include指令导入页面 -->
<jsp:include page="forward-result.jsp" >
    <jsp:param name="age" value="32"/>
</jsp:include>

动态导入只是使用一个 include 方法来插入目标页面的内容,而不是将目标页面完全融入本页面中。
静态导入和动态导入的区别:
这里写图片描述
这里写图片描述

这里写图片描述

3-3 useBean/setProperty/getProperty 指令

useBean 指令

<jsp:useBean id="name" class="classname" scope="page|request|session|application" />

setProperty 指令

<jsp:setProperty name="BeanName" property="propertyName" value="value" />

getProperty 指令

<jsp:getProperty name="BeanName" property="propertyName" />
<body>
 <!-- 创建lee.Person的实例,该实例的实例名为p1 -->
 <jsp:useBean id="p1" class="lee.Person" scope="page"/>
 <!-- 设置p1的name属性值 -->
 <jsp:setProperty name="p1" property="name" value="wawa"/>
 <!-- 设置p1的age属性值 -->
 <jsp:setProperty name="p1" property="age" value="23"/>
 <!-- 输出p1的name属性值 -->
 <jsp:getProperty name="p1" property="name"/><br/>
 <!-- 输出p1的age属性值 -->
 <jsp:getProperty name="p1" property="age"/>
</body>

Person 类源码:

public class Person
{
    private String name;
    private int age;

    //无参数的构造器
    public Person()
    {
    }
    //初始化全部属性的构造器
    public Person(String name , int age)
    {
        this.name = name;
        this.age = age;
    }
    ...
}

这里写图片描述

3-4 plugin 指令

这里写图片描述

3-5 param 指令

param 指令用于设置参数值,不能单独使用,与 jsp:include, jsp:forward,jsp:plugin 结合使用。

<jsp:param name="paramName" value="paramValue" />

4 JSP 脚本中的 9 个内置对象

这里写图片描述

4-1 application 对象

这里写图片描述
这里写图片描述

4-1-1 让多个 JSP, Servlet 共享数据

赋值

<body>
<!-- JSP声明 -->
<%!
int i;
%>
<!-- 将i值自加后放入application的变量内 -->
<%
application.setAttribute("counter",String.valueOf(++i));
%>
<!-- 输出i值 -->
<%=i%>
</body>

取值

<!-- 直接输出application 变量值 -->
<%=application.getAttribute("counter")%>

这里写图片描述
Servlet 中访问 application 里的变量。

@WebServlet(name="get-application", 
    urlPatterns={"/get-application"})
public class GetApplication extends HttpServlet
{
    public void service(HttpServletRequest request,
        HttpServletResponse response)throws IOException
    {
        response.setContentType("text/html;charset=gb2312");
        PrintWriter out = response.getWriter();
        out.println("<html><head><title>");
        out.println("测试application");
        out.println("</title></head><body>");       
        ServletContext sc = getServletConfig().getServletContext();
        out.print("application中当前的counter值为:");
        out.println(sc.getAttribute("counter"));
        out.println("</body></html>");
    }
}

这里写图片描述

4-1-2 获得 Web 应用配置参数

这里写图片描述

<body>
<%
  //从配置参数中获取驱动
  String driver = application.getInitParameter("driver");
  //从配置参数中获取数据库url
  String url = application.getInitParameter("url");
  //从配置参数中获取用户名
  String user = application.getInitParameter("user");
  //从配置参数中获取密码
  String pass = application.getInitParameter("pass");
  //注册驱动
  Class.forName(driver);
  //获取数据库连接
  Connection conn = DriverManager.getConnection(url,user,pass);
  //创建Statement对象
  Statement stmt = conn.createStatement();
  //执行查询
  ResultSet rs = stmt.executeQuery("select * from news_inf");
%>
<table bgcolor="#9999dd" border="1" width="480">
<%
  //遍历结果集
  while(rs.next())
  {
%>
    <tr>
        <td><%=rs.getString(1)%></td>
        <td><%=rs.getString(2)%></td>
    </tr>
<%
  }
%>
<table>
</body>
    <!-- 配置第一个参数:driver -->
    <context-param>
        <param-name>driver</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>
    </context-param>
    <!-- 配置第二个参数:url -->
    <context-param>
        <param-name>url</param-name>
        <param-value>jdbc:mysql://localhost:3306/javaee</param-value>
    </context-param>
    <!-- 配置第三个参数:user -->
    <context-param>
        <param-name>user</param-name>
        <param-value>root</param-value>
    </context-param>
    <!-- 配置第四个参数:pass -->
    <context-param>
        <param-name>pass</param-name>
        <param-value>32147</param-value>
    </context-param>

4-2 config 对象

这里写图片描述

<!-- 直接输出config的getServletName的值 -->
<%=config.getServletName()%>

这里写图片描述

    <servlet>
        <!-- 指定Servlet名字 -->
        <servlet-name>config</servlet-name>
        <!-- 指定将哪个JSP页面配置成Servlet -->
        <jsp-file>/configTest2.jsp</jsp-file>
        <!-- 配置名为name的参数,值为yeeku -->
        <init-param>
            <param-name>name</param-name>
            <param-value>yeeku</param-value>
        </init-param>
        <!-- 配置名为age的参数,值为30 -->
        <init-param>
            <param-name>age</param-name>
            <param-value>30</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <!-- 指定将config Servlet配置到/config URL-->
        <servlet-name>config</servlet-name>
        <url-pattern>/config</url-pattern>
    </servlet-mapping>
<!-- 输出该JSP名为name的配置参数 -->
name配置参数的值:<%=config.getInitParameter("name")%><br/>
<!-- 输出该JSP名为age的配置参数 -->
age配置参数的值:<%=config.getInitParameter("age")%>

4-3 exception 对象

这里写图片描述

<!-- 通过errorPage属性指定异常处理页面 -->
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="error.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title> JSP脚本的异常机制 </title>
    <meta name="website" content="http://www.crazyit.org" />
</head>
<body>
<%
int a = 6;
int c = a / 0;
%>
</body>
</html>
异常类型是:<%=exception.getClass()%><br/>
异常信息是:<%=exception.getMessage()%><br/>

这里写图片描述

4-4 out 对象

这里写图片描述

<%
 //注册数据库驱动
 Class.forName("com.mysql.jdbc.Driver");
 //获取数据库连接
 Connection conn = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/javaee","root","32147");
 //创建Statement对象
 Statement stmt = conn.createStatement();
 //执行查询,获取ResultSet对象
 ResultSet rs = stmt.executeQuery("select * from news_inf");
%>
<table bgcolor="#9999dd" border="1" width="400">
<%
 //遍历结果集
 while(rs.next())
 {
    //输出表格行
    out.println("<tr>");
    //输出表格列
    out.println("<td>");
    //输出结果集的第二列的值
    out.println(rs.getString(1));
    //关闭表格列
    out.println("</td>");
    //开始表格列
    out.println("<td>");
    //输出结果集的第三列的值
    out.println(rs.getString(2));
    //关闭表格列
    out.println("</td>");
    //关闭表格行
    out.println("</tr>");
 }
%>
<table>

4-5 pageContext 对象

这里写图片描述

<%
 //使用pageContext设置属性,该属性默认在page范围内
 pageContext.setAttribute("page","hello");
 //使用request设置属性,该属性默认在request范围内
 request.setAttribute("request","hello");
 //使用pageContext将属性设置在request范围中
 pageContext.setAttribute("request2","hello", pageContext.REQUEST_SCOPE);
 //使用session将属性设置在session范围中
 session.setAttribute("session","hello");
 //使用pageContext将属性设置在session范围中
 pageContext.setAttribute("session2","hello", pageContext.SESSION_SCOPE);
 //使用application将属性设置在application范围中
 application.setAttribute("app","hello");
 //使用pageContext将属性设置在application范围中
 pageContext.setAttribute("app2","hello", pageContext.APPLICATION_SCOPE);
 //下面获取各属性所在的范围:
 out.println("page变量所在范围:" + 
    pageContext.getAttributesScope("page") + "<br/>");
 out.println("request变量所在范围:" +
    pageContext.getAttributesScope("request") + "<br/>");
 out.println("request2变量所在范围:"+
    pageContext.getAttributesScope("request2") + "<br/>");
 out.println("session变量所在范围:" +
    pageContext.getAttributesScope("session") + "<br/>");
 out.println("session2变量所在范围:" +
    pageContext.getAttributesScope("session2") + "<br/>");
 out.println("app变量所在范围:" +
    pageContext.getAttributesScope("app") + "<br/>");
 out.println("app2变量所在范围:" + 
    pageContext.getAttributesScope("app2") + "<br/>");
%>

这里写图片描述

4-6 request 对象

这里写图片描述

4-6-1 获取请求头/请求参数

request 是 HttpServletRequest 接口的实例,它提供了下面几个方法来获取请求参数:

这里写图片描述

post 请求方法

<form id="form1" method="post" action="request1.jsp">
用户名:<br/>
<input type="text" name="name"><hr/>
性别:<br/>
男:<input type="radio" name="gender" value="男">
女:<input type="radio" name="gender" value="女"><hr/>
喜欢的颜色:<br/>
红:<input type="checkbox" name="color" value="红">
绿:<input type="checkbox" name="color" value="绿">
蓝:<input type="checkbox" name="color" value="蓝"><hr/>
来自的国家:<br/>
<select name="country">
    <option value="中国">中国</option>
    <option value="美国">美国</option>
    <option value="俄罗斯">俄罗斯</option>
</select><hr/>
<input type="submit" value="提交">
<input type="reset" value="重置">
</form>
<%
 //获取所有请求头的名称
 Enumeration<String> headerNames = request.getHeaderNames();
 while(headerNames.hasMoreElements())
 {
    String headerName = headerNames.nextElement();
    //获取每个请求、及其对应的值
    out.println(
        headerName + "-->" + request.getHeader(headerName) + "<br/>");
 }
 out.println("<hr/>");
 //设置解码方式,对于简体中文,使用gb2312解码
 request.setCharacterEncoding("gb2312");
 //下面依次获取表单域的值
 String name = request.getParameter("name");
 String gender = request.getParameter("gender");
 //如果某个请求参数有多个值,将使用该方法获取多个值
 String[] color = request.getParameterValues("color");
 String national = request.getParameter("country");
%>
 <!-- 下面依次输出表单域的值 -->
 您的名字:<%=name%><hr/>
 您的性别:<%=gender%><hr/>
 <!-- 输出复选框获取的数组值 -->
 您喜欢的颜色:<%for(String c : color) {out.println(c + " ");}%><hr/>
 您来自的国家:<%=national%><hr/>

获取GET请求里的中文字符。

<%
 //获取请求里包含的查询字符串
 String rawQueryStr = request.getQueryString();
 out.println("原始查询字符串为:" + rawQueryStr + "<hr/>");
 //使用URLDecoder解码字符串
 String queryStr = java.net.URLDecoder.decode(rawQueryStr , "gbk");
 out.println("解码后的查询字符串为:" + queryStr + "<hr/>");
 //以&符号分解查询字符串
 String[] paramPairs = queryStr.split("&");
 for(String paramPair : paramPairs)
 {
    out.println("每个请求参数名、值对为:" + paramPair + "<br/>");
    //以=来分解请求参数名和值
    String[] nameValue = paramPair.split("=");
    out.println(nameValue[0] + "参数的值是:" + 
        nameValue[1]+ "<hr/>");
 }
%>

4-6-2 操作 request 范围的属性

这里写图片描述

4-6-3 执行 forward 或 include

这里写图片描述

getRequestDispatcher("/a.jsp").include(request, response);
getRequestDispatcher("/a.jsp").forward(request, response);

这里写图片描述

4-7 response 对象

response 代表服务器对客户端的响应。

4-7-1 response 响应生成非字符响应

这里写图片描述

<%-- 通过contentType属性指定响应数据是图片 --%>
<%@ page contentType="image/jpeg" language="java"%>
<%@ page import="java.awt.image.*,javax.imageio.*,java.io.*,java.awt.*"%>
<%
 //创建BufferedImage对象
 BufferedImage image = new BufferedImage(340,160, BufferedImage.TYPE_INT_RGB);
 //Image对象获取Graphics对象
 Graphics g = image.getGraphics();
 //使用Graphics画图,所画的图像将会出现在image对象中
 g.fillRect(0,0,400,400);
 //设置颜色:红
 g.setColor(new Color(255,0,0));
 //画出一段弧
 g.fillArc(20, 20, 100,100, 30, 120);
 //设置颜色:绿
 g.setColor(new Color(0 , 255, 0));
 //画出一段弧
 g.fillArc(20, 20, 100,100, 150, 120);
 //设置颜色:蓝
 g.setColor(new Color(0 , 0, 255));
 //画出一段弧
 g.fillArc(20, 20, 100,100, 270, 120);
 //设置颜色:黑
 g.setColor(new Color(0,0,0));
 g.setFont(new Font("Arial Black", Font.PLAIN, 16));
 //画出三个字符串
 g.drawString("red:climb" , 200 , 60);
 g.drawString("green:swim" , 200 , 100);
 g.drawString("blue:jump" , 200 , 140);
 g.dispose();
 //将图像输出到页面的响应
 ImageIO.write(image , "jpg" , response.getOutputStream());
%>

可以在其他页面中显示这个图片页面。

<img src="img.jsp" />

这里写图片描述

4-7-2 重定向

这里写图片描述

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%
//生成页面响应
out.println("====");
//重定向到forward-result.jsp页面
response.sendRedirect("redirect-result.jsp");
%>

这里写图片描述

这里写图片描述

步骤:

这里写图片描述

<%
 //获取请求参数
 String name = request.getParameter("name");
 //以获取到的请求参数为值,创建一个Cookie对象
 Cookie c = new Cookie("username" , name);
 //设置Cookie对象的生存期限
 c.setMaxAge(24 * 3600);
 //向客户端增加Cookie对象
 response.addCookie(c);
%>
<body>
<%
 //获取本站在客户端上保留的所有Cookie
 Cookie[] cookies = request.getCookies();
 //遍历客户端上的每个Cookie
 for (Cookie c : cookies)
 {
    //如果Cookie的名为username,表明该Cookie是我们需要访问的Cookie
    if(c.getName().equals("username"))
    {
        out.println(c.getValue());
    }
 }
%>
</body>

这里写图片描述

<%
 //以编码后的字符串为值,创建一个Cookie对象
 Cookie c = new Cookie("cnName", java.net.URLEncoder.encode("孙悟空" , "gbk"));
 //设置Cookie对象的生存期限
 c.setMaxAge(24 * 3600);
 //向客户端增加Cookie对象
 response.addCookie(c);

 //获取本站在客户端上保留的所有Cookie
 Cookie[] cookies = request.getCookies();
 //遍历客户端上的每个Cookie
 for (Cookie cookie : cookies)
 {
    //如果Cookie的名为username,表明该Cookie是我们需要访问的Cookie
    if(cookie.getName().equals("cnName"))
    {
        //使用java.util.URLDecoder对Cookie值进行解码
        out.println(java.net.URLDecoder
            .decode(cookie.getValue()));
    }
 }
%>

4-8 session 对象

这里写图片描述

<body>
<form method="post" action="processBuy.jsp">
    书籍:<input type="checkbox" name="item" value="book"/><br/>
    电脑:<input type="checkbox" name="item" value="computer"/><br/>
    汽车:<input type="checkbox" name="item" value="car"/><br/>
    <input type="submit" value="购买"/>
</form>
</body>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<%@ page import="java.util.*"%>
<%
 //取出session范围的itemMap属性
 Map<String,Integer> itemMap = (Map<String,Integer>)session
    .getAttribute("itemMap");
 //如果Map对象为空,则初始化Map对象
 if (itemMap == null)
 {
    itemMap = new HashMap<String,Integer>();
    itemMap.put("书籍" , 0);
    itemMap.put("电脑" , 0);
    itemMap.put("汽车" , 0);
 }
 //获取上个页面的请求参数
 String[] buys = request.getParameterValues("item");
 //遍历数组的各元素
 for (String item : buys)
 {
    //如果item为book,表示选择购买书籍
    if(item.equals("book"))
    {
        int num1 = itemMap.get("书籍").intValue();
        //将书籍key对应的数量加1
        itemMap.put("书籍" , num1 + 1);
    }
    //如果item为computer,表示选择购买电脑
    else if (item.equals("computer"))
    {
        int num2 = itemMap.get("电脑").intValue();
        //将电脑key对应的数量加1
        itemMap.put("电脑" , num2 + 1);
    }
    //如果item为car,表示选择购买汽车
    else if (item.equals("car"))
    {
        int num3 = itemMap.get("汽车").intValue();
        //将汽车key对应的数量加1
        itemMap.put("汽车" , num3 + 1);
    }
 }
 //将itemMap对象放到设置成session范围的itemMap属性
 session.setAttribute("itemMap" , itemMap);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title> 购买的物品列表 </title>
    <meta name="website" content="http://www.crazyit.org" />
</head>
<body>
 您所购买的物品:<br/>
 书籍:<%=itemMap.get("书籍")%><br/>
 电脑:<%=itemMap.get("电脑")%><br/>
 汽车:<%=itemMap.get("汽车")%><p><a href="shop.jsp">再次购买</a></p>
</body>
</html>

这里写图片描述

5 JSP 2 的自定义标签

(待补充。。。)

6 JSP 2 特性

(待补充。。。)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EEJavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE容器 1.3.1 容器服务 1.3.2 容器类型 1.4 J2EE核心技术 1.4.1 Servlet 1.4.2 JSPJava服务页面) 1.4.3 EJB(企业JavaBean) 1.4.4 JDBC(Java数据库连接) 1.4.5 JTA/JTS(Java事务) 1.4.6 JNDI(Java命名和目录服务) 1.4.7 JavaMail(Java邮件服务) 1.4.8 RMI(远程方法调用) 1.4.9 JMS(Java消息服务) 1.4.10 JMX(Java分布式管理) 1.4.11 JACC(Java容器授权合同) 1.4.12 JCA(Java连接器体系) 1.5 小结 第二章 MVC模式介绍 2.1 MVC模式概述 2.1.1 MVC模式的设计思想 2.1.2 MVC模式的处理过程 2.2 Model规范 2.2.1 Model1规范 2.2.2 Model2规范 2.3 使用MVC的优劣 2.3.1 使用MVC模式的好处 2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE开发平台 第三章 建立Java开发平台 3.1 建立Java开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path、Classpath和JAVA_HOME 3.2 验证JDK是否安装成功 3.3 建立J2EE开发环境 3.3.1 下载SDK 3.3.2 安装SDK 3.3.3 设定Path、Classpath和J2EE_HOME 3.4 小结 第四章 Tomcat使用指南 4.1 Tomcat简介 4.1.1 Tomcat的目录结构 4.1.2 Tomcat的配置参数 4.2 建立Tomcat的开发环境 4.2.1 下载Tomcat 4.2.2 设定TOMCAT_HOME 4.3 验证Tomcat是否安装成功 4.4 创建和发布Web应用 4.4.1 创建和发布JSP应用程序 4.4.2 创建和发布Servlet应用程序 4.5 小结 第五章 Eclipse使用指南 5.1 Eclipse简介 5.1.1 Eclipse的历史 5.1.2 Eclipse的运行机制 5.2 建立Eclipse的开发环境 5.2.1 下载Eclipse 5.2.2 配置Eclipse 5.3 整合Eclipse和Tomcat 5.3.1 下载Eclipse的Tomcat插件 5.3.2 为Eclipse配置Tomcat插件 5.4 使用Eclipse建立Web开发项目 5.5 Eclipse的常用快捷键 5.5.1 有关格式化的快捷键 5.5.2 有关调试的快捷键 5.5.3 有关重构的快捷键 5.6 小结 第六章 Log4j使用指南 6.1 Log4j介绍 6.1.1 Log4j历史 6.1.2 Log4j组成 6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log4j 6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 7.1.2 为什么要使用Ant 7.2 建立Ant的开发环境 7.2.1 下载Ant 7.2.2 配置Ant 7.3 Ant的使用方法 7.3.1 Ant能完成的工作 7.3.2 配置文件build.xml 7.3.3 编译源代码 7.3.4 创建JAR文件 7.4 小结 第八章 JUnit使用指南 8.1 JUnit介绍 8.1.1 JUnit简介 8.1.2 为什么要使用JUnit 8.2 建立JUnit的开发环境 8.2.1 下载JUnit 8.2.2 配置JUnit 8.3 JUnit的使用方法 8.3.1 继承TestCase 8.3.2 编写测试方法 8.3.3 编写断言 8.4 JUnit的新特性 8.4.1 改变测试方法的命名方式 8.4.2 不再继承TestCase 8.4.3 改变初始化和销毁方式 8.4.4 改变异常处理的方式 8.5 小结 第九章 CVS使用指南 9.1 CVS介绍 9.1.1 CVS简介 9.1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值