JavaWeb开发技术笔记(基础技术篇)

本文详细介绍了Servlet的基础概念、实现方法及其与Web服务器的交互原理,并深入探讨了JSP的工作机制、语法特性以及如何利用JSP进行高效动态网页开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、Servlet

1.1、Servlet简介

1.2、HelloServlet

1.3、Servlet原理

1.4、Mapping问题

1.5、ServletContext

1、 共享数据

2、获取初始化参数

3、请求转发

4、读取资源文件

1.6、HttpServletResponse

1、方法简单分类

2、下载文件

3、验证码功能

4、实现重定向

1.7、HttpServletRequest

获取参数、请求转发

2、Cookie、Session

2.1、会话

2.2、保存会话的两种技术

2.3、Cookie

2.4、Session(重点)

3、JSP

3.1、什么是JSP

3.2、JSP原理剖析

3.3、JSP基础语法

JSP表达式

JSP脚本片段

JSP声明

3.4、JSP指令

3.5、JSP内置对象及作用域

3.6、JSP标签、JSTL标签、EL表达式


1、Servlet

1.1、Servlet简介

  • Servlet是Sun公司开发动态web的一门技术

  • Sun在这些API中提供一个接口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成两个步骤:

    • 编写一个类吗,实现Servlet接口

    • 把开发好的Java类部署到web服务器

实现了Servlet接口的Java程序叫做Servlet

1.2、HelloServlet

Servlet接口Sun公司有两个默认实现类:HttpsServlet,GenericServlrt

  1. 构建一个Maven项目,删掉里面的src目录,以后我们的学习就在这个项目里面建立Moudel,这个空的工程就是Maven主工程

  2. 关于Maven父子工程的理解:

    父项目pom.xml中会有:

      <modules>
             <module>Servlet-01</module>
         </modules>

    子项目pom.xmi中会有:

       <parent>
             <artifactId>javaweb-02-servlet</artifactId>
             <groupId>com.Jun</groupId>
             <version>1.0-SNAPSHOT</version>
         </parent

父项目中的java包子项目可以直接使用

  1. Maven环境优化

    1. 修改web.xml为最新版本

    2. 将Maven的结构搭建完整

  2. 编写一个Servlet程序

    1. 编写一个普通类

    2. 实现Servlet接口,继承HttpsServlet类,

 public class HelloServlet extends HttpServlet {
     //由于get和post只是请求实现的不同的方式,可以相互调用,业务逻辑都一样
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         //ServletOutputStream outputStream = resp.getOutputStream();
         PrintWriter writer = resp.getWriter();  //响应流
         writer.print("Hello, Servlet!");
     }
     @Override
     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         super.doPost(req, resp);
     }
 }
  1. 编写Servlet的映射

    为什么需要映射:我们写的是Java程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要再web服务器中注册我们写的Servlet,还需要给它一个浏览器能够访问的路径。

  <!--注册Servlet-->
     <servlet>
         <servlet-name>HelloServlet</servlet-name>
         <servlet-class>com.Jun.servlet.HelloServlet</servlet-class>
     </servlet>
    <!-- Servlet的请求路径-->
     <servlet-mapping>
         <servlet-name>HelloServlet</servlet-name>
         <url-pattern>/hello</url-pattern>
     </servlet-mapping>
  1. 配置tomcat

    注意:配置项目的发布路径

  2. 启动测试

1.3、Servlet原理

Servlet是由Web服务器调用,web服务器在收到浏览器请求之后,会:

 

1.4、Mapping问题

  1. 一个Servlet可以指定一个映射路径

      <servlet-mapping>
             <servlet-name>HelloServlet</servlet-name>
             <url-pattern>/hello</url-pattern>
         </servlet-mapping>
  2. 一个Servlet可以指定多个映射路径

     <servlet-mapping>
             <servlet-name>HelloServlet</servlet-name>
             <url-pattern>/hello</url-pattern>
         </servlet-mapping>
         <servlet-mapping>
             <servlet-name>HelloServlet</servlet-name>
             <url-pattern>/hello1</url-pattern>
         </servlet-mapping>
         <servlet-mapping>
             <servlet-name>HelloServlet</servlet-name>
             <url-pattern>/hello2</url-pattern>
         </servlet-mapping>
  3. 一个Servlet可以指定通用映射路径

     <servlet-mapping>
             <servlet-name>HelloServlet</servlet-name>
             <url-pattern>/hello/*</url-pattern>
         </servlet-mapping>
  4. 指定一些后缀或者前缀(*前面不能加项目映射的路径)

<servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>*.jun</url-pattern>
    </servlet-mapping>
  1. Mapping优先级

    指定固有的映射路径优先级最高,如果找不到就会走默认的处理请求

1.5、ServletContext

Web容器在启动的时候,他会为每个web程序都创建一个对应的ServletContext对象,它代表当前的web应用

 

1、 共享数据

  • 我在这个servlet中保存的数据,可以在另外一个servlet中拿到

HelloServlet类设置数据,存储到ServletContext:

 public class HelloServlet extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         //this.getInitParameter()   初始化参数
         //this.getServletInfo();    Servlet配置
         //this.getServletContext(); Servlet上下文
         ServletContext Context = this.getServletContext();
         String username = "马俊";  //数据
         Context.setAttribute("username",username);  //将一个数据保存在ServletContext
     }
 }

GetServlet类获取ServletContext已存储的数据,并响应输出:

public class GetServlet extends  HelloServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         ServletContext context = this.getServletContext();
         String username = (String)context.getAttribute("username");
         resp.setCharacterEncoding("utf-8");
         resp.setContentType("text/html");
         resp.getWriter().print("名字"+username);
     }

测试步骤:

  • 先运行HelloServlet在ServletContext中存储数据

  • 再运行GetServlet读取ServletContext中的数据并响应输出

测试结果:

 

2、获取初始化参数

  <context-param>
         <param-name>url</param-name>
         <param-value>jdbc:mysql://localhost:3306</param-value>
     </context-param>
public class ServletDemo03 extends  HelloServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         ServletContext context = this.getServletContext();
         String url = context.getInitParameter("url");
         resp.getWriter().print(url);
     }}

3、请求转发

请求转发工作流程:

4、读取资源文件

Properties

  • 在Java目录下新建properties

  • 在resources目录下新建properties

发现:都被打包到同一个路径下:classes,我们俗称这个路径为classpath

思路:需要一个文件流

 @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         InputStream is = this.getServletContext().getResourceAsStream("WEB-INF/classes/db.properties");
         Properties prop = new Properties();
         prop.load(is);
         String user = prop.getProperty("username");
         String pwd = prop.getProperty("password");
         resp.getWriter().print(user+":"+pwd);
     }

1.6、HttpServletResponse

web服务器接收到客户端的Http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse

  • 如果要获取客户端请求过来的参数:找HttpServletRequest

  • 如果要给客户端响应一些信息:找HttpServletResponse

1、方法简单分类

负责向浏览器发送数据的方法:

 ServletOutputStream getOutputStream() throws IOException;
     PrintWriter getWriter() throws IOException;

负责向浏览器发送响应头的方法:

     void setCharacterEncoding(String var1);
     void setContentLength(int var1);
     void setContentLengthLong(long var1);
     void setContentType(String var1);
     void setBufferSize(int var1);

负责设置状态码:

2、下载文件

  1. 向浏览器输出消息

  2. 下载文件

    1. 要获取下载文件的路径

    2. 下载的文件名是啥

    3. 设置想办法让浏览器能够支持下载我们需要的东西

    4. 获取下载文件的输入流

    5. 创建缓冲区

    6. 获取outputStream对象

    7. 将FileoutputStream流写入到buffer缓冲区

    8. 使用outputStream将缓冲区中的数据输出到客户端

      @Override
         protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             String realPath = "E:\\JavaWeb Preject\\javaweb-02-servlet\\Servlet-03\\target\\classes\\1.png";
             System.out.println("下载文件的路径:"+realPath);
             String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
             resp.setHeader("Content-disposition","attachment;filename"+fileName);
             resp.setContentType("png;charset=utf-8");
             FileInputStream in = new FileInputStream(realPath);
             int len = 0;
             byte[] buffer = new byte[2048];
             ServletOutputStream out = resp.getOutputStream();
             while ((len=in.read(buffer))>0) {
                 out.write(buffer, 0, len);
             }
                 out.close();
                 in.close();
             }

3、验证码功能

验证怎么来的?

  • 前端实现

  • 后端实现,需要用到Java的图片类,产生一张图片

  @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     //如何让浏览器5秒自动刷新一次
         resp.setHeader("refresh","3");
         //在内存中创建一个图片
         BufferedImage image = new BufferedImage(80,20,BufferedImage.TYPE_INT_RGB);
         //得到图片
         Graphics2D g = (Graphics2D)image.getGraphics();
         g.setColor(Color.white);
         g.fillRect(0,0,80,20);
         //给图片写数据
         g.setColor(Color.blue);
         g.setFont(new Font(null,Font.BOLD,20));
         g.drawString(makeNum(),0,20);
 ​
         //告诉浏览器,这个请求用图片形式打开
         resp.setContentType("image/jpeg");
         resp.setDateHeader("expires",-1);
         resp.setHeader("Cache-Control","no-cache");
         resp.setHeader("Paragma","no-cache");
         //把图片写给浏览器
         ImageIO.write(image,"jpg",resp.getOutputStream());
     }
     private  String makeNum(){
         Random random = new Random();
         String num = random.nextInt(99999999) + "";
         StringBuffer sb = new StringBuffer();
         for (int i = 0; i <7-num.length() ; i++) {
             sb.append("0");
         }
         String s = sb.toString() + num;
         return num;
     }

4、实现重定向

一个web资源(B)收到客户端(A)请求后,他会通知客户端(A)去访问另外一个web资源(C),这个过程叫做重定向

常见场景:

  • 用户登录

  void sendRedirect(String var1) throws IOException;

面试题:重定向和请求转发的区别?

相同点:

  • 页面都会实现跳转

不同点:

  • 请求转发的时候:url不会产生变化

  • 重定向的时候:url会产生变化

1.7、HttpServletRequest

HttpServletRequest代表客户端的请求,用户通过Http协议访问服务器,Http请求中的所有信息会被封装到HttpServletRequest,通过这个HttpServletRequest的方法,获取一些客户端请求信息

获取参数、请求转发

 public class LoginServlet extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         req.setCharacterEncoding("utf-8");
         String username = req.getParameter("username");
         String password = req.getParameter("password");
         String[] hobbys = req.getParameterValues("hobby");
         System.out.println("=====================");
         //后台接收乱码问题
         System.out.println(username);
         System.out.println(password);
         System.out.println(Arrays.toString(hobbys));
         System.out.println("=====================");
         System.out.println(req.getContextPath());
         //请求转发
         resp.setCharacterEncoding("utf-8");
         req.getRequestDispatcher("/success.jsp").forward(req,resp);
     }

2、Cookie、Session

2.1、会话

会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程称之为会话

有状态会话:

客户端 服务器端

  1. 服务器端给客户端一个信件,客户端下次访问服务端带上信件就可以 cookie

  2. 服务器登记你来过,下次你来的时候我匹配你 session

2.2、保存会话的两种技术

cookie

  • 客户端技术(响应,请求)

session

  • 服务器技术,利用这个技术,可以保存用户的会话信息

常见应用:网站登录之后,你下次不用再登录,第二次访问直接就进去了

2.3、Cookie

  1. 从请求中拿到cookie信息

  2. 服务器相应给客户端cookie

 Cookie[] cookies = req.getCookies();  //获得cookie
 cookie.getName()    //获得cookie中的key
 cookie.getValue()   //获得cookie中的value
 Cookie cookie = new Cookie("lastLoginTime",System.currentTimeMillis()+"");  //创建一个新的cookie
 cookie.setMaxAge(24*60*60);   //设置cookie的有效期
 resp.addCookie(cookie);    //相应给客户端一个cookie

cookie:一般会保存在本地用户目录下appdata

删除cookie:

  • 不设置有效期,关闭浏览器,自动失效

  • 设置有效期时间为0

编码解码:

   URLEncoder.encode("马俊","utf-8");
   URLDecoder.decode(cookie.getValue(),"utf-8");

2.4、Session(重点)

什么是Session:

  • 服务器会给每一个用户(浏览器)创建一个Seesion对象

  • 一个Session独占一个浏览器,只要浏览器没有关闭,这个session就存在

  • 用户登录之后,整个网站都可以访问——保存用户的信息,保存购物车的信息

Session和Cookie的区别:

  • Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)

  • Session把用户的数据写到用户独占的Session中,服务器端保存(保存重要的信息,减少服务器资源的浪费)

  • Session对象由服务器创建

Session会话自动过期:web.xml配置

  <session-config>
  <!--15分钟后Session自动失效,以分钟为单位-->
     <session-timeout>15</session-timeout>
  </session-config>

3、JSP

3.1、什么是JSP

Java Server pages:Java服务器端页面,也和Servlet一样,用于动态Web开发技术!

最大的特点:

  • 写JSP就像在写Html

  • 区别:

    • HTML只给用户提供静态的数据

    • JSP页面中可以嵌入Java代码,为用户提供动态数据

3.2、JSP原理剖析

思路:JSP到底怎么样执行的!

  • 代码层面就类似Html页面

  • 服务器内部工作:

    • tomcat中有一个work目录

    • Idea中使用Tomcat的会在Idea的tomcat中产生一个work目录

    发现页面转变成了Java程序:

 

浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet!

JSP本质上就是一个Java类

JSP内部工作过程:

  1. 判断请求

  2. 内置一些对象

  3. 输出页面前增加的代码

  4. 内置的对象可以在JSP页面中直接使用

JSP工作实现原理:

 

在JSP页面中:

只要是Java代码就会被原封不动的输出

如果是HTML代码,就会被转换成;

 out.write("<html>\r\n");

这样的方式在前端输出

3.3、JSP基础语法

任何语言都有自己的语法。JSP作为Java技术的一种应用,它拥有一些自己扩充的语法,Java所有语法都支持!

JSP表达式

    <%--JSP表达式   作用:将程序的输出,输出到客户端--%>
     <%= new java.util.Date()%>

JSP脚本片段

  <%--JSP脚本片段--%>
    <%
      int sum = 0;
        for (int i = 1; i <=100 ; i++) {
            sum+=i;
        }
        out.println("<h1>总数为"+sum+"</h1>");
    %>

脚本片段的再实现

 <%--在代码中嵌入HTML元素--%>
    <%
        for (int i = 0; i <5 ; i++) {
            out.write("<h1>majun</h1>");
    %>
   <h1>Hello,world <%=i%></h1>
   <%
       }
   %>

JSP声明

  <%!
       static {
           System.out.println("Loading Servlet");
       }
       private  int globalVar = 0;
       public  void jun(){
           System.out.println("进入了方法Jun");
       }
   %>

JSP声明:会被编译到JSP生成的Java类中!其他的,就会被生成到jspService方法中!

JSP的注释,不会在客户端显示,HTML的在查看网页源代码时就会显示

3.4、JSP指令

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@include file="  "%>  
 <jsp:include page="/common/header.jsp"/>

include file=" ":将多个页面整合为一个页面

jsp:include:拼接页面,页面的组合数没有变化

3.5、JSP内置对象及作用域

  • PageContext

  • Request

  • Response

  • Session

  • Application

  • Config 【ServletConfig】

  • out

  • page

  • exception

  pageContext.setAttribute("name1","马俊1");  //保存的数据只在一个页面中有效
  request.setAttribute("name2","马俊2");      //保存的数据只在一次请求中有效,请求转发会携带这个数据
  session.setAttribute("name3","马俊3");      //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
  application.setAttribute("name4","马俊4");  //保存的数据只在服务器中有效,从打开服务器到关闭服务器

3.6、JSP标签、JSTL标签、EL表达式

EL表达式:${}

  • 获取数据

  • 执行运算

  • 获取web开发的常用对象

JSP标签:

 <%--jsp:include--%>
 <jsp:forward page="jsp2.jsp">
     <jsp:param name="name" value="majun"/>
     <jsp:param name="age" value="18"/>
 </jsp:forward>

JSTL表达式:

JSTL标签库的使用就是为了弥补HTML标签的不足,它自定义许多标签,标签的功能和Java代码一样

  • 核心标签

  • 格式化标签

  • SQL标签

  • XML标签

JSTL标签库使用步骤:

  • 引入对应的taglib

  • 使用其中的方法

  • 在Tomcat中也需要引入jstl的包,否则会报错:JSTL解析错误

提供典型应用案例,剖析JSP/Servret技术与Struts 2技术Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例和4个综合案例,可以作为案头必备的查询手册 一线开发人员全力打造,分享技术盛宴! 重点内容及特色 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》介绍了Web开发中客户端技术基础知识,包括JavaScript、CSS、AJAX等,这些技术都是Web应用中常用的客户端技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握的技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和事务管理等,Spring中的数据库技术与AOP等。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》特别介绍了Struts 2对AjAX的支持,还重点剖析了SSH框架的整合开发,并给出了两个综合案例来展示整合SSH框架开发Web应用。 和已经出版的同类图书相比,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》讲解由浅入深,涵盖更多内容,列举了大量典型实例具有超强的实用性,另外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》各篇独立,适合读者全面学习或对部分内容重点学习。 读者对象 有Java基础,想进一步学习SSH框架整合开发的人员 了解SSH整合开发,想进一步提高开发技术的人员 正在使用SSH整合技术开发项目,想查阅资料的人员 大中专院校的学生和老师,以及Java培训班的学员和讲师 需要一本案头必备查询手册的程序员 光盘内容 6小时多媒体体视频讲解 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》所涉及的源代码 布衣暖,菜根香,好书滋味长!清华大学出版社长期以来一直秉承为读者多出好书的宗旨,多年来为读者奉献了大量脍炙人口的精品图书。尤其在计算机图书出版领域更是形成了鲜明特色,所出版的各类计算机图书受到了广大读者的好评。本次出版的“原创经典,程序员典藏”系列图书是清华大学出版社的重点精品计算机图书,旨在帮助读者全面学习各类程序设计语言和开发工具,提高开发水平。同时也为广大程序员提供良好的技术参考,以便作为案头必备的查询手册。 内容提要 -------------------------------------------------------------------------------- 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法。《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring(Ioc容器、装配Java Bean、Jdbc和Hibernate模板、事务管理、Spring AOP等)以及 Hibernate(会话、映射、标准查询API、HQL、事务管理、锁等)。除此之外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》还提供了两个完整的实例来讲解开发SSH的详细步骤和方法。通过对这两个实例的学习,读者可以对SSH开发模式有更透彻地理解和认识。SSH是目前最流行的Java Web开发技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》适合广大从事Java Web开发工作的技术人员、对SSH开发感兴趣的人员以及大专院校学生阅读,尤其是具有一定的Web开发经验的技术人员。 目录 -------------------------------------------------------------------------------- 第1篇 web开发基础篇 第1章 搭建开发环境 1.1 本书使用的软件和框架的版本 1.2 JDK6的下载与安装 1.3 Eclipse3.4 的下载与安装 1.4 MyEclipse6.5 的下载与安装 1.5 Eclipse:IDEforJavaEEDevelopers的下载与安装 1.6 Tomcat6的下载与安装 1.7 在MyEclipse中配置。Tomcat 1.8 在EclipseIDEforJavaEEDevelopers中配置Tomcat 1.9 小结 第2章 JavaWeb应用开发基础 2.1 Web技术的发展 2.2 JavaWeb技术 2.2.1 Java.Welb程序的基本组成 2.2.2 JavaWeb程序的目录结构 2.2.3 JavaWeb程序的配置文件 2.3 MVC模式与MvC框架 2.3.1 JSP模型1和JSP模型2 2.3.2 Web应用程序需要的基础服务 2.3.3 MVC模式概述 2.3.4 常用的MvC框架 2.4 小结 第3章 Web开发中的客户端技术 3.1 常用的JavaScriptIDE简介 3.1.1 在MyEclipse中使用JavaScript 3.1.2 在EclipseIDEforJavaEE中使用JavaScript 3.1.3 在NetBeans中使用JavaScript 3.1.4 其他的JavaScriptIDE 3.2.1 avaScdpt语法基础 3.2.1 实例:编写第一个JavaScript程序:Greet 3.2.2 变量 3.2.3 原始类型 3.2.4 类型转换 3.2.5 函数与函数调用 3.2.6 类和对象 3.3 JavaScript高级技术 3.3.1 DOM技术概述 3.3.2 获得HTML元素的3种方法 3.3.3 实例:图像自动切换 3.3.4 正则表达式 3.3.5 实例:表格排序 3.4 CSS基础 3.4.1 CSS的基本语法 3.4.2 在Style属性中定义样式 3.4.3 在HTML中定义样式 3.4.4 在外部文件中定义样式 3.4.5 样式的继承 3.5 AJAX.基础 3.5.1 AJAX概述 3.5.2 实例:使用XMLHttpRequest获得Web资源 3.5.3 实例:使用XMLHttpRequest跨域访问Web资源 3.5.4 实例:AJAX的3种交换数据方法 3.6 小结 第4章 Servlet技术 4.1 Servlet的Helloworld程序 4.1.1 实例:在My Eclipse中编写Helloworld程序 4.1.2 实例:手工编写:Helloworld程序 4.2 Servlet基础 4.2.1 配置数据库连接池 4.2.2 数据库连接池的应用 4.2 -3实例:用doGet方法处理客户端请求 4.2.4 实例:用doPost方法处理客户端请求 4.2.5 实例:用service方法处理客户端请求 4.2.6 实例:初始化(init)和销毁(destroy)Servlet 4.2.7 实例:使用PrintWriter输出响应消息 4.2.8 实例:用ServletOutputStream显示图像 4.2.9 实例:使用RequestDispatcher包含Web资源 4.2.10 实例:使用RequestDispatcher转发Web资源 4.3 HttpServletResponse类的其他功能 4.3.1 产生状态响应码 4.3.2 设置响应消息头 4.3.3 实例:验证响应头设置情况 4.4 使用:HttpServletRequest获得请求消息 4.4.1 获取请求行消息 4.4.2 获取网络连接消息 4.4.3 获取请求头消息 4.5 处理Cookie 4.5.1 什么是Cookie 4.5.2 Cookie类中的方法 4.5.3 实例:用Cookie读写客户端信息 4.5.4 实例:用Cookie读写复杂数据 4.6 处理Session 4.6.1 什么是Session 4.6.2 HttpSession接口中的方法 4.6.3 HttpServletRequest接口中的Session方法 4.6.4 实例:通过Cookie跟踪Session 4.6.5 实例:通过重写uRL跟踪Session 4.7 Web开发的中文问题 4.7.1 Java的编码原理 4.7.2 实例:解决输出中文乱码问题 4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第一个JSP程序 5.1.1 实例:编写显示服务器当前时间的JSP程序 5.1.2 调试JSP程序 5.1.3 改变JSP的访问路径和扩展名 5.1.4 手动发布JSP程序 5.2 JSP的运行原理 5.2.1 Tomcat如何处理JSP页 5.2.2 分析由JSP生成的Servlet代码 5.3 JSP基本语法 5.3.1 JSP表达式 5.3.2 在JSP中嵌入Java代码 5.3.3.JSP声明 5.3.4.JSP表达式语言(EL) 5.3.5 实例:用EL函数替换HTML中的特殊字符 5.3.6 JSP页面中的注释 5.4 JSP指令 5.4.1 JSP指令简介 5.4.2 page页面指令 5.4.3 include加入指令 5.5.JSP的9个内置对象 5.5.1 out输出对象 5.5.2 pageContext封装对象 5.5.3 其他的JSP内置对象 5.6 JSP标签 5.6.1 插入标签 5.6.2 转发标签 5.6.3 传参标签 5.6.4 创建:Bean标签 5.6.5 设置属性值标签 5.6.6 获取属性值标签 5.7 JSP的标准标签库(JSTL) 5.7.1 如何使用JSTL 5.7.2 条件标签 5.7.3 循环标签 5.8 小结 第6章 用Servlet和JSP实现注册登录系统 第2篇 Struts 2篇 第7章 编写Struts 2的第一个程序 第8章 Struts 2进阶 第9章 Struts 2的* 第10章 Struts 2的类型转换 第11章 Struts 2的输入校验 第12章 文件的上传和下载 第13章 国际化 第14章 Struts 2的标签库 第15章 Struts 2对AJAX的支持 第16章 用Struts 2实现注册登录系统 第3篇 Hibernate篇 第17章 Hibernate的Helloworld程序 第18章 配置Hibernate 第19章 Hibernate的会话与O/R映射 第20章 Hibernate的查询与更新技术 第21章 Hibernate的高级技术 第4篇 Spring篇 第22章 Spring的Helloworld程序 第23章 反向控制(Ioc)与装配JavaBean 第24章 Spring中的数据库技术 第25章 Spring的其他高级技术 第5篇 综合实例篇 第26章 Struts 2与Hibernate、Spring的整合 第27章 网络硬盘 第28章 论坛系统
提供典型应用案例,剖析JSP/Servret技术与Struts 2技术Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例和4个综合案例,可以作为案头必备的查询手册 一线开发人员全力打造,分享技术盛宴! 重点内容及特色 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》介绍了Web开发中客户端技术基础知识,包括JavaScript、CSS、AJAX等,这些技术都是Web应用中常用的客户端技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握的技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和事务管理等,Spring中的数据库技术与AOP等。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》特别介绍了Struts 2对AjAX的支持,还重点剖析了SSH框架的整合开发,并给出了两个综合案例来展示整合SSH框架开发Web应用。 和已经出版的同类图书相比,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》讲解由浅入深,涵盖更多内容,列举了大量典型实例具有超强的实用性,另外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》各篇独立,适合读者全面学习或对部分内容重点学习。 读者对象 有Java基础,想进一步学习SSH框架整合开发的人员 了解SSH整合开发,想进一步提高开发技术的人员 正在使用SSH整合技术开发项目,想查阅资料的人员 大中专院校的学生和老师,以及Java培训班的学员和讲师 需要一本案头必备查询手册的程序员 光盘内容 6小时多媒体体视频讲解 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》所涉及的源代码 布衣暖,菜根香,好书滋味长!清华大学出版社长期以来一直秉承为读者多出好书的宗旨,多年来为读者奉献了大量脍炙人口的精品图书。尤其在计算机图书出版领域更是形成了鲜明特色,所出版的各类计算机图书受到了广大读者的好评。本次出版的“原创经典,程序员典藏”系列图书是清华大学出版社的重点精品计算机图书,旨在帮助读者全面学习各类程序设计语言和开发工具,提高开发水平。同时也为广大程序员提供良好的技术参考,以便作为案头必备的查询手册。 内容提要 -------------------------------------------------------------------------------- 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法。《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring(Ioc容器、装配Java Bean、Jdbc和Hibernate模板、事务管理、Spring AOP等)以及 Hibernate(会话、映射、标准查询API、HQL、事务管理、锁等)。除此之外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》还提供了两个完整的实例来讲解开发SSH的详细步骤和方法。通过对这两个实例的学习,读者可以对SSH开发模式有更透彻地理解和认识。SSH是目前最流行的Java Web开发技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》适合广大从事Java Web开发工作的技术人员、对SSH开发感兴趣的人员以及大专院校学生阅读,尤其是具有一定的Web开发经验的技术人员。 目录 -------------------------------------------------------------------------------- 第1篇 web开发基础篇 第1章 搭建开发环境 1.1 本书使用的软件和框架的版本 1.2 JDK6的下载与安装 1.3 Eclipse3.4 的下载与安装 1.4 MyEclipse6.5 的下载与安装 1.5 Eclipse:IDEforJavaEEDevelopers的下载与安装 1.6 Tomcat6的下载与安装 1.7 在MyEclipse中配置。Tomcat 1.8 在EclipseIDEforJavaEEDevelopers中配置Tomcat 1.9 小结 第2章 JavaWeb应用开发基础 2.1 Web技术的发展 2.2 JavaWeb技术 2.2.1 Java.Welb程序的基本组成 2.2.2 JavaWeb程序的目录结构 2.2.3 JavaWeb程序的配置文件 2.3 MVC模式与MvC框架 2.3.1 JSP模型1和JSP模型2 2.3.2 Web应用程序需要的基础服务 2.3.3 MVC模式概述 2.3.4 常用的MvC框架 2.4 小结 第3章 Web开发中的客户端技术 3.1 常用的JavaScriptIDE简介 3.1.1 在MyEclipse中使用JavaScript 3.1.2 在EclipseIDEforJavaEE中使用JavaScript 3.1.3 在NetBeans中使用JavaScript 3.1.4 其他的JavaScriptIDE 3.2.1 avaScdpt语法基础 3.2.1 实例:编写第一个JavaScript程序:Greet 3.2.2 变量 3.2.3 原始类型 3.2.4 类型转换 3.2.5 函数与函数调用 3.2.6 类和对象 3.3 JavaScript高级技术 3.3.1 DOM技术概述 3.3.2 获得HTML元素的3种方法 3.3.3 实例:图像自动切换 3.3.4 正则表达式 3.3.5 实例:表格排序 3.4 CSS基础 3.4.1 CSS的基本语法 3.4.2 在Style属性中定义样式 3.4.3 在HTML中定义样式 3.4.4 在外部文件中定义样式 3.4.5 样式的继承 3.5 AJAX.基础 3.5.1 AJAX概述 3.5.2 实例:使用XMLHttpRequest获得Web资源 3.5.3 实例:使用XMLHttpRequest跨域访问Web资源 3.5.4 实例:AJAX的3种交换数据方法 3.6 小结 第4章 Servlet技术 4.1 Servlet的Helloworld程序 4.1.1 实例:在My Eclipse中编写Helloworld程序 4.1.2 实例:手工编写:Helloworld程序 4.2 Servlet基础 4.2.1 配置数据库连接池 4.2.2 数据库连接池的应用 4.2 -3实例:用doGet方法处理客户端请求 4.2.4 实例:用doPost方法处理客户端请求 4.2.5 实例:用service方法处理客户端请求 4.2.6 实例:初始化(init)和销毁(destroy)Servlet 4.2.7 实例:使用PrintWriter输出响应消息 4.2.8 实例:用ServletOutputStream显示图像 4.2.9 实例:使用RequestDispatcher包含Web资源 4.2.10 实例:使用RequestDispatcher转发Web资源 4.3 HttpServletResponse类的其他功能 4.3.1 产生状态响应码 4.3.2 设置响应消息头 4.3.3 实例:验证响应头设置情况 4.4 使用:HttpServletRequest获得请求消息 4.4.1 获取请求行消息 4.4.2 获取网络连接消息 4.4.3 获取请求头消息 4.5 处理Cookie 4.5.1 什么是Cookie 4.5.2 Cookie类中的方法 4.5.3 实例:用Cookie读写客户端信息 4.5.4 实例:用Cookie读写复杂数据 4.6 处理Session 4.6.1 什么是Session 4.6.2 HttpSession接口中的方法 4.6.3 HttpServletRequest接口中的Session方法 4.6.4 实例:通过Cookie跟踪Session 4.6.5 实例:通过重写uRL跟踪Session 4.7 Web开发的中文问题 4.7.1 Java的编码原理 4.7.2 实例:解决输出中文乱码问题 4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第一个JSP程序 5.1.1 实例:编写显示服务器当前时间的JSP程序 5.1.2 调试JSP程序 5.1.3 改变JSP的访问路径和扩展名 5.1.4 手动发布JSP程序 5.2 JSP的运行原理 5.2.1 Tomcat如何处理JSP页 5.2.2 分析由JSP生成的Servlet代码 5.3 JSP基本语法 5.3.1 JSP表达式 5.3.2 在JSP中嵌入Java代码 5.3.3.JSP声明 5.3.4.JSP表达式语言(EL) 5.3.5 实例:用EL函数替换HTML中的特殊字符 5.3.6 JSP页面中的注释 5.4 JSP指令 5.4.1 JSP指令简介 5.4.2 page页面指令 5.4.3 include加入指令 5.5.JSP的9个内置对象 5.5.1 out输出对象 5.5.2 pageContext封装对象 5.5.3 其他的JSP内置对象 5.6 JSP标签 5.6.1 插入标签 5.6.2 转发标签 5.6.3 传参标签 5.6.4 创建:Bean标签 5.6.5 设置属性值标签 5.6.6 获取属性值标签 5.7 JSP的标准标签库(JSTL) 5.7.1 如何使用JSTL 5.7.2 条件标签 5.7.3 循环标签 5.8 小结 第6章 用Servlet和JSP实现注册登录系统 第2篇 Struts 2篇 第7章 编写Struts 2的第一个程序 第8章 Struts 2进阶 第9章 Struts 2的* 第10章 Struts 2的类型转换 第11章 Struts 2的输入校验 第12章 文件的上传和下载 第13章 国际化 第14章 Struts 2的标签库 第15章 Struts 2对AJAX的支持 第16章 用Struts 2实现注册登录系统 第3篇 Hibernate篇 第17章 Hibernate的Helloworld程序 第18章 配置Hibernate 第19章 Hibernate的会话与O/R映射 第20章 Hibernate的查询与更新技术 第21章 Hibernate的高级技术 第4篇 Spring篇 第22章 Spring的Helloworld程序 第23章 反向控制(Ioc)与装配JavaBean 第24章 Spring中的数据库技术 第25章 Spring的其他高级技术 第5篇 综合实例篇 第26章 Struts 2与Hibernate、Spring的整合 第27章 网络硬盘 第28章 论坛系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aurora-Jun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值