首页 > 编程语言 >java web开发(第一个jsp工程)

java web开发(第一个jsp工程)

时间:2022-11-23 15:06:13浏览次数:42  
标签:web serviceVar java jsp destroyVar JSP servlet


        前面两期,我们谈到了怎么进行servlet的编写。一种方法是将传统的java工程改造成servlet工程;另外一种方法就是直接利用maven创建一个webapp工程。事实上呢,如果大家观察仔细的话,可以发现系统当时其实已经帮助我们创建了一个jsp,是index.jsp。

        servlet和jsp之间的关系,有点类似于controller和view的关系。servlet是java里面嵌入html,而jsp是html里面嵌入java。今天就可以通过这个机会看看,单纯jsp工程是怎么创建的。

1、创建maven下的webapp工程,类型选择maven-archetype-webapp

java web开发(第一个jsp工程)_java

2、依次Next确定之后,直到工程生成,就可以看到一个index.jsp文件,内容如下,

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

3、配置tomcat服务器

3.1 配置端口

java web开发(第一个jsp工程)_maven_02

 3.2 配置  deployment

java web开发(第一个jsp工程)_前端_03

4、保存配置,启动web服务器

         没有意外的话,输入http://localhost:8090/Hello_war_exploded/之后,就会看到一个Hello World的网页出现了。这一切看上去都平淡无奇。没关系,我们可以继续通过几个实例看一下jsp是怎么嵌入java代码的。

5、jsp范例

5.1 将jsp的直接输出修改为java代码打印输出

<html>
<head>
<title>第一个 JSP 程序</title>
</head>
<body>
<%
out.println("Hello World");
%>
</body>
</html>

        从这段代码看,显然两个%之间的内容是web服务器帮忙解析的。其实这段代码也是经过了jsp-》java servlet-》html转变的过程,只不过是后台帮忙做了,前台是看不出来的。可以逆向看一下html内容,和之前的直接输出几乎没有区别。

<html>
<head>
<title>The first jsp program</title>
</head>
<body>
Hello World

</body>
</html>

5.2 获取当前日期

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>日期</title>
</head>
<body>
<p>
今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body>
</html>

        这段代码可以比较明显地看出来,日期的获取方法是明显的java编程方法。不管是java.util.Date,还是toLocalString,形式上几乎一眼就可以看出来是java编程。

5.3 jsp生命周期

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>life.jsp</title>
</head>
<body>

<%!
private int initVar=0;
private int serviceVar=0;
private int destroyVar=0;
%>

<%!
public void jspInit(){
initVar++;
System.out.println("jspInit(): JSP被初始化了"+initVar+"次");
}
public void jspDestroy(){
destroyVar++;
System.out.println("jspDestroy(): JSP被销毁了"+destroyVar+"次");
}
%>

<%
serviceVar++;
System.out.println("_jspService(): JSP共响应了"+serviceVar+"次请求");

String content1="初始化次数 : "+initVar;
String content2="响应客户请求次数 : "+serviceVar;
String content3="销毁次数 : "+destroyVar;
%>
<h1>JSP 测试</h1>
<p><%=content1 %></p>
<p><%=content2 %></p>
<p><%=content3 %></p>

</body>
</html>

        这段代码比较有意思,大家可以通过不断刷新网页,验证content1、content2、content3这个三个数值是什么时候发生改变的。比如说,为什么content1没有变?为什么content2一直在变?为什么content3好像一直是0,究竟应该什么时候content3才会发生改变等等。

6、总结

        jsp的出发点是好的,比如说设计者是想通过后端java解析,可以实现view界面的自由开发。无奈后来出现了更多的后端模板引擎,甚至出现了vue这种前端搞定一切的架构,所以jsp本身其实就没有那么重要了,它所留下来的更多的是其设计思想。

标签:web,serviceVar,java,jsp,destroyVar,JSP,servlet
From: https://blog.51cto.com/feixiaoxing/5881291

相关文章

  • java web开发(maven创建servlet程序)
        之前我们写了一篇文章,主要是说一般情况下怎么开发servlet。其实,用maven创建servlet工程也是非常方便的。网上有一篇文章,地址在,也谈到了怎么实现idea+maven+serv......
  • jave web开发(IDEA中配置maven + 第一个pom包)
        maven是现在java中用的比较多的一个软件。一方面,maven可以单独使用;另外一方面maven也可以和各个IDE进行配合,比如刚刚安装的IDEA,就可以和maven进行联合配置使用......
  • java web开发(注解)
        注解也是蛮有意思的。个人来看,它更多是一种偷懒的处理方法。一种常见的场景是这样的,如果我们希望对某一种类型的数据来做判断,那么就是在每个函数开始的位置添加......
  • java web开发(反射)
        反射是java很重要的一个特点。也是它区别于c、c++、fortan等传统语言的一个重要的语言特征。通过反射可以做很多的事情,比如动态创建类,动态修改变量,动态调用类函......
  • java web开发(IDEA安装 + 第一个java工程)
    发环境是myeclipse。时过境迁,现在大家更多地愿意用IDEA环境来开发。对于新手,尤其是刚入门的同学来说,有一个好的IDE环境还是能够减轻不少负担的。这样,可以让学习的曲线不是......
  • 常用js库和框架(vue&element ui与webpy)
        编写前端代码的同学都知道,目前最火的前端代码是vue&elementui,而后端个人又比较喜欢用webpy,那么这两者是怎么配合的。现在都说要实现前后端分离,两者的json数据......
  • java上位机开发(编译和部署)
        之前开发java程序的时候,一直用的是命令行来完成的。其实大家也可以用eclipse、IDEA这些工具来做。部署也是一样,一方面大家可以用maven这些工具来完成,另外一方面......
  • java和设计模式(行为模式)
        和构建模式、结构模式相比较,行为模式的内容要多一些。在设计模式中,行为模式强调的是类和对象之间的交互关系。它更多强调的是,在特定的行为场景种,使用哪一种设计......
  • java和设计模式(结构模式)
        在设计模式中,有一类设计模式是比较有意思的,但是关注的人不多。这就是结构模式。如果说创建模式的重点是如何创建出实例对象,那么结构模式的特点就是利用类、示例......
  • java和设计模式(创建模式)
        有过软件开发经验的同学都知道,软件开发功能怎么都能完成。但是如果需要在软件上面不断做需求变更和重构,这就变得好复杂了。对于这些变更,如果只是硬编码去解决,那......