【JavaWeb】JSP的概述

目录

一、什么是JSP

二.为什么学习JSP

1.JSP的运行原理

1.1创建一个JSP页面

1.2运行JSP

1.3JSP的运行原理分析

1.4JSP的脚本元素

三、JSP的开发模式之MVC模式

1.动态网页开发模式的发展

四、开发中的路径问题

1.什么时候会遇到路径问题

2.路径的分类

五、案例需求介绍

1.案例需求描述

2.案例流程分析

3.MVC如何在案例中应用

4.案例准备-创建数据库

1.建表语句

5.案例准备-项目环境搭建

1.创建web项目

2.创建相关的包结构

 6.案例准备-引入相关资源

1.引入相关的jar包:

2.引入C3P0配置文件

3.引入JDBC开发的工具类

7.案例准备-创建登录页面

1.登录页面实现

2.登录页面效果

8.案例代码-登录代码实现

1.登录代码实现流程

 2.登录代码实现

 3.登录的Servlet的业务代码

4.处理数据部分代码

 5.登录代码错误信息回显

 6.记录登录成功的人数分析

六、请求转发和重定向完成页面跳转

1.请求转发

1.1请求转发的写法

 1.2请求转发的代码实现

1.3请求转发的效果

2.重定向

2.1重定向的写法

 2.2重定向的代码实现

 2.3重定向的效果

3.请求转发和重定向区别

1.请求转发和重定向原理

2.请求转发和重定向区别总结

3.代码演示请求转发和重定向区别

总结


一、什么是JSP

JSP:Java Server Pages (Java服务器端页面),其实就在HTML中嵌入Java代码。

二.为什么学习JSP

SUN公司提供了动态网页开发技术:Servlet。Servlet自身有一些缺点,SUN公司发现了这些问题,推出了一个新的动态网页开发技术JSP。

Servlet的缺点:

  1. Servlet需要进行配置,不方便维护
  2. Servlet很难向网页中输出HTML页面内容

1.JSP的运行原理

1.1创建一个JSP页面

1.2运行JSP

JSP需要发布到服务器中才可以运行的。

  1. 发布项目到Tomcat中
  2. 访问JSP页面

1.3JSP的运行原理分析

JSP文件翻译成Java文件,将这个Java文件编译生成class文件,运行class文件。

1.4JSP的脚本元素

1.4.1什么是JSP的脚本元素:
 

JSP = HTML + Java代码 + JSP自身东西

JSP的脚本元素就是在JSP中嵌入Java代码。

1.4.2JSP的脚本元素的分类

第一个:声明标签

  • 语法:
  • ①<%! 变量或方法声明 %>
  • ②写在这个脚本中的代码,翻译成Servlet内部的成员变量或成员方法。
  • 用法:

 第二个:表达式标签

语法:

①<%= 表达式 %>

②写在这个脚本中的代码,翻译成方法内部的out.print();当中的内容。

用法:

 第三个:程序代码标签

语法:

①<% 程序代码 %>

②写在这个脚本中的代码,翻译成方法内部的局部变量或方法内部代码片段。

用法:

三、JSP的开发模式之MVC模式

1.动态网页开发模式的发展

四、开发中的路径问题

1.什么时候会遇到路径问题

提供一些页面,在页面中会提供链接或者表单,当点击链接或者表单的时候需要进行提交,提交到Servlet中。从页面向Servlet发送请求的地址(路径)应该如何编写。

2.路径的分类

2.1相对路径:

相对路径的写法:相对路径不是以 / 开头的。

相对路径的使用:

①在根路径下的页面访问Servlet

demo2.jsp的访问路径:

http://localhost:8080/web02/demo2.jsp

ServletDemo1的访问路径:

http://localhost:8080/web02/ServletDemo1

 ②在某个目录下的页面访问Servlet

demo2.jsp的访问路径:

http://localhost:8080/web02/demo2/demo2.jsp

ServletDemo1的访问路径:

http://localhost:8080/web02/ServletDemo1

2.2绝对路径(通常):

绝对路径的写法:通常以 / 开始的路径

使用绝对路径,不需要关心当前文件和要请求的文件的相对位置的关系!!!

注意:

  • ①绝对路径分成服务器端路径和客户端路径
  • ②客户端路径  需要带工程名
  • ③服务器端路径 不需要带工程名

五、案例需求介绍

1.案例需求描述

提供登录页面,用于用户登录(用户名和密码需要查询数据库)。如果登录失败,需要回到登录页面(给出提示信息)。如果登录成功,页面进行跳转,在成功页面上显示登录成功的总人数。

2.案例流程分析

3.MVC如何在案例中应用

这里说明一下,我们的mvc模式里面,原来的Servlet变成了Controller,封装和处理这块变成了Modul层,页面展示变成了View层。Controller层之做调度,实际的操作还是在Modul层操作。

4.案例准备-创建数据库

1.建表语句

create database web02_login;
use web02_login;
create table user(
	uid int primary key auto_increment,
	username varchar(20),
	password varchar(20),
	nickname varchar(20)
);

insert into user values (null,'zs','123','张三');
insert into user values (null,'ls','123','李四');
insert into user values (null,'ww','123','王五');

5.案例准备-项目环境搭建

1.创建web项目

写项目名字,然后选2.5版本

 直接next

 这里建立好的目录

接下来我们要修改Web项目的编译路径:

WEB-INF目录下创建classes文件夹。

然后右击项目,选择Build Path ---> Configure Build Path

将编译的输出路径改为:项目名/WebContent/WEB-INF/classes

 点击Apply and Close,你会发现创建的classes文件夹消失了,可以将build文件夹删除了。至此,一个标准的动态Web项目就创建完成了!

 

2.创建相关的包结构

controller包存放控制层代码的,对应原来的Servlet

model包主要用来用处理数据的javabean存放的位置

domain包实体的意思,我们通常的数据封装的javabean类放到这里

utils包连接数据库的工具类放到这里

 6.案例准备-引入相关资源

1.引入相关的jar包:

  1. MySQL数据库驱动包
  2. C3P0连接池所需jar包
  3. DBUtils开发的jar包

2.引入C3P0配置文件

将配置文件放到工程的src下即可

3.引入JDBC开发的工具类

7.案例准备-创建登录页面

1.登录页面实现

2.登录页面效果

8.案例代码-登录代码实现

1.登录代码实现流程

登录页面(login.jsp)--->>登录的Servlet(LoginServlet),在这个Servlet中需要接收数据,将这个数据封装到一个JavaBean中,调用另一个JavaBean处理数据。根据处理结果进行页面跳转。

 2.登录代码实现

第一步:在controller包下创建LoginServlet

第二步:在domain下创建一个User类

第三步:在model包下创建一个UserModel类

在这个类中提供一个login的方法

第四步:根据处理结果进行页面跳转

 3.登录的Servlet的业务代码

4.处理数据部分代码

 5.登录代码错误信息回显

 错误信息显示效果:

 6.记录登录成功的人数分析

  1. 画图分析

1.1完成初始化操作

在服务器启动的时候初始化一个值为零,将这个值存入到ServletContext域中。

将这个Servlet配置成启动时加载:

 1.2记录登录成功的人数

1.3在登录成功页面上显示总人数

六、请求转发和重定向完成页面跳转

1.请求转发

1.1请求转发的写法

通过ServletRequest对象获得RequestDispatcher对象。

再根据RequestDispatcher中的方法进行请求转发。

 1.2请求转发的代码实现

1.3请求转发的效果

注意:这里我说一下,在我用eclipse建立动态web项目的时候,是直接按照指示建立的,但是建立完成之后,我写完转发的ServletDemo1.java代码后,在浏览器中输入对应的地址,就是不转发到相应的jsp页面,报错说说找不到我的ServletDemo1.java这个文件,百度了才知道,要在建立的webapp文件夹下面建立一个classes文件夹,并把java代码编译之后的位置改为这个位置,之前没有指定位置,导致java代码没有编译,所以找不到类。

2.重定向

2.1重定向的写法

通过HttpServletResponse对象中的以下方法实现重定向

 2.2重定向的代码实现

 2.3重定向的效果

3.请求转发和重定向区别

1.请求转发和重定向原理

转发就是客户端发出请求之后,找到Servlet,然后Servlet转发到jsp,然后jsp相应,返回给客户端。

而重定向是客户端发出请求之后,找到Servlet,然后Servlet把重定向的url,返回给客户端,然后客户端又请求这个url,找到jsp页面,然后相应之后返回给客户端。

2.请求转发和重定向区别总结

  1. 请求转发是一次请求一次响应,而重定向是两次请求两次响应。
  2. 请求转发地址栏不会变化的,重定向地址栏发生变化。
  3. 请求转发路径不带工程名,重定向需要带工程名路径。
  4. 请求转发只能在本网站内部,重定向可以定向到任何网站。

 3.代码演示请求转发和重定向区别

jsp页面:

注意:

如果需要使用request进行值传递,需要通过请求转发完成。如果页面需要跳转到其他网站上必须使用重定向。

猜你喜欢

转载自blog.csdn.net/wang_qiu_hao/article/details/126514708
今日推荐