一、概述

在学习完三个基础篇内容之后,我们就要逐步开始动手做JavaWeb项目,所以在这里我先简单介绍一下JavaWeb开发,然后再介绍Jsp。

1. JavaWeb概述
(1)前期需要的技术:JavaSE、MySQL数据库(如果单纯的做项目那么数据库只需要会基本的Sql语句即可,但建议做更进一步学习)、HTML、JavaScript。

2)开发结构:C/S架构和B/S架构,我们选择B/S架构即浏览器/服务器模式。

(3)Web应用的基本操作模型:客户端向服务端发送请求,服务端做出响应。

(4)JavaWeb中的服务器:TomCat,这里的Tomcat分为两种版本,一种是安装tomcat客户端软件,另一种是压缩文件,只需解压后导入到开发工具中,最后将你的项目添加进TomCat中即可。

2. JSP概述
(1)JSP全称:Java Server Page(Java服务器页面)

(2)JSP是在HTML文件中嵌入Java代码,使页面中可以使用Java代码执行动态内容,使用HTML代码执行静态内容。

(3)JSP常用编码:
ISO-8859-1:西方编码不支持中文
GB2312:支持中文,只支持简体中文
GBK:支持中文,支持简体中文和繁体中文
UTF-8:支持全球所有国家的语言

(4)JSP的执行过程:
.jsp–转义–>.java-编译–>.class–执行–>JVM

二、使用

1. 页面组成

 (1)<%@ 指令%> :用于对JSP页面进行设置,有page、include、taglib指令。(2)<% 脚本%>:用于在JSP页面中写java代码,但是不能定义类或方法(3)<%=要输出内容%>:用于向页面输出内容,可以写表达式(4)<%! 声明方法%>:用于在页面上声明方法(5)<%-- 注释 --%> :JSP中的注释写法(6)<jsp:动作名/>:JSP中的七大动作:include、useBean、getProperty、setProperty、param、forward、plugin。

2. Servlet
(1)定义:使用JSP页面可以处理web应用中的客户端请求,但JSP页面属于前端部分,不属于纯服务端(Java),我们在执行时需要将JSP转义为Java文件进行处理,我们就可以直接来定义一个Java类来对客户端请求进行处理,这个Java类就是Servlet。该类的功能是:获得客户端请求并向客户端响应的,Servlet并不负责业务处理。

(2)使用:当一个类继承了javax.servlet.http.HttpServlet类后,该类就成为了一个Servlet类。在类中需要重写两个方法doGet()和doPost()。doGet方法用于处理客户端的Get请求,doPost方法用于处理客户端的Post请求。然后配置Servlet,方法有两种:基于web.xml配置和基于注解配置(推荐使用注解配置)。

(3)Servlet的生命周期:创建Servlet对象(调用无参的构造方法),初始化(调用init()),执行服务方法(调用Service()|doGet()|doPost()),销毁(调用destroy)。

3. JSP内置对象(重点)
(1)request(请求对象):request对象属于HttpServletRequest接口的一个实例。它内部是使用map集合实现的。它的作用域为一次请求(客户端向服务端发送的一次请求),默认情况下request对象仅仅在一次请求中有效,但我们可以通过请求转发将该请求延长。(请求对象的生命周期是比较短暂的)
常用方法:

1. request.setCharacterEncoding("UTF-8");设置请求对象的编码集
2. getParameter(“”);获取客户端提交的单个数据
3. String[] xxxs = request.getParameterValues("xxx");获得同名的多个数据
4.request.setAttribute("attr", "val1");向request对象中设置一个属性,参数1属性名,参数2属性值(Object)
5.request.getAttribute(“attr”);根据属性名获取属性值
6.request.getRequestDispatcher("xxx.jsp").forward(request, response);请求转发,可以将请求对象转发到其他页面或Servlet中
7.request.getSession();获得页面中的session对象

(2)response(响应对象):Response对象属于HttpServletResponse接口的一个实例。它的作用域为服务端向客户端的一次响应。
常用方法:

1.response.setContextType("text/html;charset=utf-8");设置响应对象的编码集
2.response.sendirect("目标地址"); 重定向
3.response.getWritter();获得一个输出流,用于向页面输入内容。

(3)application(应用服务器对象):是一个作用域对象,表示当前应用服务器,它的作用域是整个应用程序,它存储的数据称为整个服务器的共享数据。Application对象属于ServletContext接口的一个实例。
存储要求:

1.不能太大,该对象中的数据不会被释放,除非服务器重启才会自动释放其中的数据。
2.用户隐私数据也不能存放在application中。

常用方法:

(1)  setAttribute(“name”,obj);//向application对象中添加一个属性
(2) getAttribute(“name”);//从application获取一个属性,根据属性名获取

(4)config(配置对象):通过config对象获得相关的配置信息

(5)session(会话对象):Http协议是一个无状态的协议,无状态指该协议不维持客户端与服务端的连接状态;(当客户端向服务端发送请求时会自动创建一个连接将客户端与服务端连接起来,当一次请求/响应结束后该连接自然断开;其后每次发送新的请求都会创建新的连接;所以服务端无法确定客户端状态)。所以通过session来维持客户端与服务端的状态,这种技术我们称为会话跟踪技术。
session的作用域:

 会话开始:一个会话的建立从客户端第一次向服务端请求开始会话结束:1.关闭浏览器会话结束2.超时(在一定的时间内未进行任何操作则session自动销毁),tomcat超时的时间默认为30分钟3.手动销毁session(session.invalidate())4.服务器关闭

session的常用方法:

 setAttribute(“”,””)  向session中设置一个属性getAttribute(“”)   从session中获取一个属性的值getId()            获得sessionIdinvalidate()     销毁session

(6)page(页面对象):page对象就是this,它表示当前页面对象。

(7)pageContext(页面上下文对象):pageContext是一个作用域对象,可以通过pageContext对象在当前页面存储数据,它的作用域仅限于当前页面。也可以用它来获取其他内置对象。

(8)out(输出对象):是一个输出流对象用于向页面输出内容。

(9)exception(异常对象):在JSP页面处理异常。

注:
重定向和请求转发的区别:
(1)使用重定向跳转页面后浏览器显示的地址为目标地址,而请求转发跳转页面后的地址为源地址。
(2)重定向无法将request的对象传递给目标地址,它只能传递字符串数据。请求转发不仅可以传递字符串数据还能将request对象传递给目标地址(自动传递)。
(3)重定向是由客户端发出的一次请求,请求转发属于内部转发,不再由客户端发出新请求。

如何完整的做一个web项目,进阶篇(1)JSP学习相关推荐

  1. 自己一人如何去做一个web项目

    三思而后行 当你被自己的想法激起心中豪情的时候,一定要按下心情,冷静的思考一下,思考点包括以下几个部分: 这个Web项目所需要的知识和能力是否在自己所掌握的范围内,这个是技术前提,如果项目本身技术复杂 ...

  2. eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)

    在eclipse中创建一个Web项目的时候,虽然有web.xml生成,但是再添加Servlet类文件的时候总是看不见web.xml的更新,所以异常的郁闷!上网查了查,原来我们在创建Web项目的时候,会 ...

  3. 一个web项目中web.xmlcontext-param的作用

    转 <context-param>的作用: web.xml的配置中<context-param>配置作用 1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置 ...

  4. [转贴]现在在做一个WEB的站内消息系统,从工具栏位置弹出一徐徐上升的窗口...

    现在在做一个WEB的站内消息系统, 想在用户登陆时, 如果有未读短消息 则从工具栏位置弹出一徐徐上升的窗口 显示提醒信息! <script language="JavaScript&q ...

  5. 一个web项目在myeclipse中add deployment时无法被识别出来的原因

    当我们一个web项目,在myeclipse中,add deployment时,可能发现,根本无法被识别成web项目,可能的原因有:    1. 项目的properties ->Myeclipse ...

  6. idea maven创建java项目_新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目(图文教程)...

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: ...

  7. jq写的项目如何部署到静态服务器_如何在阿里云服务器上部署一个Web项目

    准备工作: 1:你得有云服务器! 2:你的云服务器上的tomcat必须正常运行! 如何在云服务器上发布一个Web项目? 1:需要制作好一个Web项目: 2:在本地电脑上tomcat上部署后运行正常: ...

  8. Servlet之第一个web项目

    所谓Servlet就是完成浏览器和服务器之间的交互,浏览器发出请求,服务器做出响应,二者既然能进行信息的交流,那么他们就一定有一种规范,那这个规范就是HTTP协议,有了这种协议,那么不管你是什么浏览器 ...

  9. 用Maven创建第一个web项目Struts2项目

    一.创建一个web项目 参考前面文章,项目名:maven-struts-demo. 二.配置pom.xml文件添加struts2依赖 <project xmlns="http://ma ...

最新文章

  1. Java反斜线(\)路径与转义字符的小坑
  2. 学习笔记Spark(六)—— Spark SQL应用(1)—— Spark SQL简介、环境配置
  3. bootstrap的分页
  4. [开源]OSharpNS - .net core 快速开发框架 - 简介
  5. 从fork-join /线程池调用的Singelton bean中的访问spring请求范围缓存
  6. vue router.beforeEach跳转路由验证用户登录状态
  7. Quidway S1700系列企业网交换机
  8. Python语言的技术领域
  9. SIP - pjsip Linux Windows 编译安装
  10. qt制作一个简易的传输文件小工具
  11. 调用有道智云api做翻译器遇到播放音频的问题
  12. 20140925百度校园招聘二面
  13. 【Eclipse中的Preferences窗口中没有Server的解决方案】【Eclipse配置Tomcat】
  14. An invalid domain [.test.com] was specified for this cookie 原因分析
  15. 外卖优惠券返利分销系统外卖返利系统公众号小程序源码saas系统
  16. torch.Tensor.requires_grad属性的使用说明
  17. Nim博弈变形(anti-nim)
  18. C++ 设计模式之单例模式
  19. 机器学习和深度学习路线
  20. c语言程序设计班车管理系统,【2017年整理】班车信息管理系统.doc

热门文章

  1. 【C语言程序】利用‘*‘打印出“HELLO”的形状
  2. Android native开发严重问题总结
  3. 全国大学生数据统计与分析竞赛2021年【本科组】-B题:战胜市场: 应用基于熵权平衡的 CatBoost 二分类模型和改进 RFM 用户价值模型
  4. 基于电流控制的并网逆变器(Simulink)
  5. 360player全景图播放器-附源码
  6. CentOS7.5LNMP-Nginx部署
  7. 计算机等级考试准考证号规则,计算机等级考试(NCRE)准考证是根据什么规则编号的呢?...
  8. c语言n i i 1什么意思啊,for(i=0;in;i++)什么意思
  9. 爬取豆瓣王祖贤电影海报代码
  10. POJO分层领域模型