JSP&Servlet学习笔记_ch01

1.2 Servlet/JSP简介

在学习Java程序语言时,有个重要的概念:"JVM(Java Virtual Machine)是Java程序唯一认识的操作系统,其可执行文件为.class文件。"基于这一概念,在编写Java程序时,必须了解Java程序如何与JVM这个虚拟操作系统进行通信,JVM如何管理Java程序中的对象问题。

在学习Servlet/JSP时,也有个重要概念:"Web容器(Container)是Servlet/jSP"唯一认得的HTTP服务器。"如果希望用Servlet/JSP编写的Web应用程序可以正常运作,就必须知道Servlet/JSP如何与Web容器沟通,Web容器如何管理Servlet/JSP的各种对象问题 。

1.2.2 Servlet与JSP的关系

        本书从开始到现在一直在谈Servlet,这是因为Servlet与JSP是一体两面,JSP会被Web容器转译为Servlet的.java源文件、编译为.class文件,然后加载容器,因此最后提供服务的还是Servlet实例。这也是为什么始终在谈Servlete的原因,要想完全掌握JSP,也必须先对Servlet有相当程度的了解,才不会一知半解,遇到错误无法解决。

        也许有人会说,有必要掌握JSP吗?毕竟自Java EE 6中规范的JSP 2.2之后,JSP本身也没有显著的改进了,虽然Java EE 7规范中是JSP2.3,但中是做些规范维护,主要是因为Expression Language、JSF技术做了些调整,而在Java EE8之中,jSP规范仍维持在2.3.

        这一方面是由于有些商业性考虑,另一方面则是因为前端技术的兴起。就今天来说,若能与前端技术相磁开发者适当配合,JSP已经不是撰写的主要选择,不过,既有的应用程序,不少是基于JSP撰写的,若有JSP的基础,将来转换使用其他的页面模板技术就容易上手。

至于Servlet规范,仍持续在演变,特别是是Java EE 8 中,Servlet从3.1版本号跳到了4.0版本 ,用以突显其规范上有着重大不同;在Java的Web开发这块,一些重大Web框架,例如Spring MVC,仍是基于Servlet,如果能掌握Servlet,在使用这类框架时,对理解底层细节或者进行框架细节控制会有很大的帮助。

因而,无论是从掌握JSP的角度来看,或者是能灵活运用基于Servlet的Web框架来看,掌握Servlet都是必要的!

先来看看一个基本的Servlet长什么样子。

package cc.openhome;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Hello")   
	public class Hello extends HttpServlet { //1继承HttpServlet
	    @Override
	    protected void doGet(//2重新定义doGet()
	            HttpServletRequest request, HttpServletResponse response)
	                throws ServletException, IOException {
	        response.setContentType("text/html;charset=UTF-8");//3设定响应内容类型
	        
	        String name = request.getParameter("name");//4取得请求的参数
	        
	        PrintWriter out = response.getWriter();//5取得响应输出对象
	        out.print("<!DOCTYPE html>");
	        out.print("<html>");
	        out.print("<head>");
	        out.print("<title>Hello</title>");
	        out.print("</head>");
	        out.print("<body>");
	        out.printf("<h1> Hello! %s!</h1>", name);//6跟用户说Hello!
	        out.print("</body>");
	        out.print("</html>");
	    }
	}

许多初学JSp的人会遇到很多转译 、编译或执行的问题,而非 问题通常在于不了解JSP转译为Servlet之后,对应到哪个程序段,更有人完全不知道JSP与Servlet其实是一体两面的事实,因崦遇到问题就无法解决。了解JSP与Servlet的对应关系,必要时查看一下JSP转译为Servlet后的源代码,都是jsp网页执行遇到错误时解决问题的重要方法之一。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值