JavaBean和Servlet

文章目录

    • JavaBean
      • 通俗的讲
      • JavaBean的作用
    • JavaBean(就是一个Java类)的定义
      • 使用层面,Java分为2大类:
    • Servlet
      • 回顾纯手工方法创建第一个Servlet
      • 借助于Eclipse快速生成Servlet
      • Servlet3.0,与Servlet2.5的区别:
      • 项目根目录:WebContent、src(所有的构建路径)
      • Servlet生命周期:5个阶段
      • Servlet API
      • Servlet继承关系
      • Servlet使用层面

JavaBean

通俗的讲

我们将 jsp中登录操作的代码 转移到了LoginDao.java;
其中LoginDao类 就称之为JavaBean。

JavaBean的作用

a.减轻的jsp复杂度
b.提高代码复用(以后任何地方的登录操作,都可以通过调用LoginDao实现)

JavaBean(就是一个Java类)的定义

满足一下2点 ,就可以称为JavaBean

	a.public 修饰的类  ,public 无参构造b.所有属性(如果有) 都是private,并且提供set/get   (如果boolean 则get 可以替换成is)

使用层面,Java分为2大类:

a.封装业务逻辑的JavaBean (LoginDao.java封装了登录逻辑)
逻辑可以将jsp中的JDBC代码,封装到Login.java类中 (Login.java)
b.封装数据的JavaBean (实体类,Student.java Person.java )
数据对应于数据库中的一张表

Login login = new Login(uname,upwd) ;//即用Login对象 封装了2个数据(用户名 和密码)

封装数据的JavaBean 对应于数据库中的一张表 (Login(name,pwd)) 封装业务逻辑的JavaBean 用于操作
一个封装数据的JavaBean

可以发现,JavaBean可以简化 代码(jsp->jsp+java)、提供代码复用(LoginDao.java)

public  void sleep(String name,String place, int time)
{}public  void sleep(Person per)
{per.getName()per.getPlace()...

Servlet

回顾纯手工方法创建第一个Servlet

编写一个类,继承HttpServlet
重写doGet()、doPost()方法
编写web.xml 中的servlet映射关系

借助于Eclipse快速生成Servlet

直接新建Servlet即可!(继承、重写、web.xml 可以借助Eclipse自动生成)

Servlet3.0,与Servlet2.5的区别:

Servlet3.0不需要在web.xml中配置,但 需要在 Servlet类的定义处之上编写
注解@WebServlet(“url-pattern的值”) 匹配流程: 请求地址 与@WebServlet中的值
进行匹配,如果匹配成功 ,则说明 请求的就是该注解所对应的类

项目根目录:WebContent、src(所有的构建路径)

例如:
WebContent中有一个文件index.jsp
src中有一个Servlet.java

如果: index.jsp中请求 <a href="abc">...</a> ,则 寻找范围:既会在src根目录中找  也会在WebContent根目录中找
如果:index.jsp中请求<a href="a/abc"></a>,寻找范围:先在src或WebContent中找a目录,然后再在a目录中找abc

web.xml中的 /:代表项目根路径

http://localhost:8888/Servlet25Project/

jsp中的/: 服务器根路径

http://localhost:8888/

构建路径、WebContent:根目录

Servlet生命周期:5个阶段

加载
初始化: init() ,该方法会在 Servlet被加载并实例化的以后 执行
服务 :service() ->doGet() doPost
销毁 :destroy(), Servlet被系统回收时执行
卸载

init():
a.默认第一次访问 Servlet时会被执行 (只执行这一次)
b.可以修改为 Tomcat启动时自动执行
i.Servlet2.5: web.xml

  <servlet>...<load-on-startup>1</load-on-startup></servlet>//其中的“1”代表第一个。//ii.Servlet3.0@WebServlet(value="/WelcomeServlet" ,loadOnStartup=1)

service() ->doGet() doPost :调用几次,则执行几次
destroy():关闭tomcat服务时,执行一次。

Servlet API

由两个软件包组成: 对应于HTTP协议的软件包、对应于除了HTTP协议以外的其他软件包
即Servlet API可以适用于任何通信协议。
我们学习的Servlet,是位于javax.servlet.http包中的类和接口,是基础HTTP协议。

Servlet继承关系

ServletConfig:接口

ServletContext getServletContext():获取Servlet上下文对象   application
String  getInitParameter(String name):在当前Servlet范围内,获取名为name的参数值(初始化参数)

ServletContext中的常见方法(application):

getContextPath():相对路径
getRealPath():绝对路径
setAttribute()getAttribute()
String getInitParameter(String name);在当前Web容器范围内,获取名为name的参数值(初始化参数)

Servlet3.0方式 给当前Servlet设置初始值:

@WebServlet( .... , initParams= {@WebInitParam(name="serveltparaname30",value="servletparavalue30")   })
注意,此注解只 隶属于某一个具体的Servlet ,因此无法为 整个web容器设置初始化参数 (如果要通过3.0方式设置 web容器的初始化参数,仍然需要在web.xml中设置)

HttpServletRequest中的方法:(同request),例如setAttrite()、getCookies()、getMethod()
HttpServletResponse中的方法:同response

Servlet使用层面

Eclipse中在src创建一个Servlet,然后重写doGet() doPost()就可以 (doGet() doPost()只需要编写一个)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530970.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux编程考前测试题

文章目录选择题多选题判断题填空题简答题编程题选择题 1:当打开vi文本编辑器编辑文件时&#xff0c;vi处于&#xff08;A&#xff09;模式 A: 命令模式 B: 编辑模式 C: 实模式 D: 虚模式 2:下列有关fork&#xff08;&#xff09;函数返回值说法错误的是&#xff08;D&#xf…

MySQL考试复习(知识点、练习题)

文章目录数据库的管理技术的三个阶段发展的三个阶段数据库的锁数据库设计的基本步骤事务的四大特性什么是视图如果关系模式设计不好&#xff0c;可能带来哪几个问题数据库管理系统的主要功能有哪些数据库系统中的常见故障有哪些简述SQL语言的组成说明关系模型有哪三类完整性规则…

Oracle复习(知识点、练习题、实验)

文章目录第一章 数据库概念数据库的三级模式结构&#xff1a;模式、外模式、内模式三级模式之间的映射第二章 Oracle12g体系结构Oracle的逻辑存储结构Oracle物理存储结构Oracle11g服务器结构系统全局区&#xff08;SGA&#xff09;程序全局区&#xff08;PGA&#xff09;第三章…

Openstack面试题和知识点总结

文章目录知识点云计算起源定义特点分类服务类型平台分类应用虚拟化虚拟化技术定义分类云计算和虚拟化的关系虚拟化的优点OpenStack简介核心架构Openstack组件共享服务组件核心组件组件详解RabbitMQ概念特点rabbitmq中的概念工作原理常用操作MemcachedKeystoneGlance工作原理Nov…

实例化一个对象

类实例化就是新建一个类的对象&#xff0c;就是new一个对象 类名 对象名 new 类名&#xff08;&#xff09;;例子&#xff1a;Student stu new Student&#xff08;&#xff09;; 注意&#xff1a; 类在没有实例化之前,就是new之前,它的属性,方法等等在内存中都是不存在的.…

RuntimeException:java.lang.ClassNotFoundException: Class wordcount.WordCountMapper not fonud

在hadoop上运行Mapreduce项目jar包报错&#xff1a; Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class wordcount.WordCountMapper not foundat org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2638)at org.apache.hadoop.ma…

auto.js 实现信息发送、QQ点赞、微信点赞、健康日报签到

文章目录auto.js开发文档安装total control在手机端安装auto.js apk安装vscode短信多条发送QQ点赞微信点赞健康日报填写叠猫猫auto.js开发文档 点击学习 安装total control total control 用于手机投屏在电脑屏幕上 在手机端安装auto.js apk 链接&#xff1a;https://pan.…

MapReduce综合学习含Wordcount案例

文章目录MapReduce简介MapTaskReduceTaskMapper阶段解读Reducer阶段解读MapReduce适用的问题MapReduce的特点MapReduce基本思想大数据处理思想&#xff1a;分而治之构建抽象模型&#xff1a;Map 函数和 Reduce 函数上升到架构&#xff1a;并行自动化并隐藏底层细节MapReduce计算…

基于Spring boot+Vue的在线考试系统

文章目录spring boot 分层图解安装idea配置阿里云镜像项目启动前端项目结构项目前端中index.htmlApp.vuemain.jsrouter整个页面渲染过程关于矢量图图标的使用引入JQuery依赖github-markdown-css样式文件-一般用作文章正文的样式美化spring boot 分层图解 安装idea 安装参考 id…

Java基础总结之(面试)

文章目录Java标识符Java修饰符访问权限修饰符访问控制和继承非访问权限修饰符局部变量修饰符接口接口中方法修饰符运算符算术运算符一元运算符二元运算符算术赋值运算符赋值运算符逻辑运算符&#xff08;&&、||和!&#xff09;关系运算符自增和自减运算符&#xff08;和…

Javaweb练手项目

文章目录学生管理系统音乐网站锋芒博客中医药管理系统博客天梯CMS系统锋芒社团官网学生管理系统 实现技术&#xff1a;ServletMVC&#xff08;模式&#xff09;Filter(过滤器&#xff09;html 主要功能&#xff1a;学生信息的增删查改&#xff0c;文件&#xff08;图片&#x…

Spark之scala学习(基础篇)待更新

文章目录引言大数据介绍大数据与云计算区别大数据和人工智能的区别大数据和传统的分析&#xff08;excel&#xff09;的区别scala的特性面向对象特性函数式编程函数式编程的特点&#xff1a;函数式编程的优势静态类型扩展性并发性为什么要学scalascala安装简单测试了解ScalaSca…

Jupyter Notebook的安装及问题解决方案

文章目录下载并安装Anaconda3更改主界面路径但是如果没有jupyter_notebook_config.py文件怎么办&#xff1f;如果更改过路径后&#xff0c;不生效怎么办&#xff1f;使用参考pycharm导入pyspark下载并安装Anaconda3 官网下载个人版 Anaconda3安装参考 点击&#xff0c;然后进…

airodump-ng wlan0mon扫描不到网络_MySQL ProxySql 由于漏洞扫描导致的 PROXYSQL CPU 超高...

ProxySQL 本身是一款非常棒的MYSQL 中间件的开源产品, 在公司运行了一段时间后,突然一天报警,所在机器的CPU 出奇的高,之前在测试系统, 预生产, 以及生产系统均没有出现问题. 开始未来紧急解决问题,重新启动了proxysql服务,并查看错误日志.PROXYSQL 的系统版本的2.012 MYSQL 的…

网络安全之SQL注入

文章目录SQL注入的定义SQL注入为什么会成功&#xff1f;为什么发生SQL注入&#xff1f;SQL注入的分析SQL的注入流程判断SQL注入点判断注入类型SQL注入的通常方法防止SQL注入SQL注入的定义 SQL注入是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串&#xff0c…

4个空格和一个tab有什么区别_火花塞为什么一换就是4个?只换一个不行吗?

火花塞不是一个经常被提及的配件&#xff0c;但如果火花塞老化&#xff0c;车辆的整体性能将受到影响&#xff0c;更换火花塞其实也是日常保养的一部分&#xff0c;就像换机油和三滤一样。不知道大家是否注意到&#xff0c;在做完保养之后&#xff0c;维修师傅会帮你检查一下火…

小型云台用的是什么电机_直流电机的工作原理是什么?未来的电动车都会用直流电机吗?...

说起直流电机&#xff0c;其实我们每个人&#xff0c;每天都在用。是吗&#xff1f;别惊讶&#xff0c;是的。手机&#xff0c;我们每天都在用&#xff0c;有消息或者有电话时&#xff0c;手机就开始振动。这个振动就是用直流电机来实现的。当然&#xff0c;直流电机在其他领域…

C语言、C++学习路线

文章目录C语言 C语言大纲 C语言知识点总结图 C语言视频推荐基础篇进阶篇速成篇基础入门之游戏实战篇C语言核心链表文档教程视频教程文件C语言实例C C大纲岗位分析 C与C 编程基础四大件数据结构与算法计算机网络操作系统设计模式C视频推荐C语言 C语言大纲 C语言知识点总结图 C语…

2020年日历_2020年《故宫日历》发布:浓缩紫禁城600年沧桑

2020年《故宫日历》。中国网记者 刘维佳/摄中国网8月26日讯(记者 刘维佳) 2020年《故宫日历》发布会今日在故宫博物院建福宫举行。2020年为庚子鼠年&#xff0c;亦正值紫禁城建成六百周年&#xff0c;因此&#xff0c;2020年《故宫日历》是为纪念紫禁城六百周年而特别呈现。故宫…

计算机二级(C语言)备考

文章目录考试详情一点建议公共基础知识&#xff08;10分&#xff09;着重点资源视频教程文档练习题考试详情 一、选择题 40分 二、程序填空题 18分 三、程序修改题 18分 四、程序设计题 24分 考试时间&#xff1a;120分钟 一点建议 多练习题目&#xff0c;多思考&#xff0c…