servlet层接受信息
问题一:dao与servlet
Dao层处理数据库的格式,一个操作对应一个dao
JSP开发中的分层都是基于MVC架构的,即(Model-View-Controller),M:模型层,
主要是负责一些具体的业务逻辑的实现,V:视图层,可以理解为JSP页面,C:控制
器层,用于接受页面请求与响应请求到JSP页面的控制机制。在模型层中,又分为
biz,dao,entity等层,biz:Bussiness Model,业务模型,主要用于处理某一类
业务的处理流程,dao:Data Access Object,数据访问层,主要针对于数据表的操
作,可以理解为一张数据表,就有一个Dao与之对应,在Dao里面包含对该张数据表
的增、删、改、查等操作。entity:又叫POJO(Plain Old Java Object),最原
始的Java类,用于将数据表封装为Java模型,一般这里面会以属性的形式,记录数
据表的字段,通过getter/setter方法来操作,对应字段的信息,这也可以理解为面
向对象中的封装。servlet层就是MVC中的控制器,主要用于接受JSP的页面请求和响
应请求。所以整个流程是JSP页面发起请求到servlet,获取请求,交个biz层,在bi
z层中通过一系列对数据表的操作,这就要结合dao和entity的作用,完成业务逻辑
,然后,响应给servlet,由servlet,再响应出JSP 页面。
你一个客户端(通俗的说是浏览器)请求一个页面,然后输入用户名,密码等,点
提交,然后数据会发到servlet,servlet会调用到DAO层,存储到数据库,然后把返
回值返回给servlet,然后servlet会跳转到一个页面告诉你,注册成功还是失败。
servlet:网络传输
dao:数据库交互
entity:实体类
相关软件平台:gihub,我的理解是程序员的维基百科全书
问题二:
integer与int的区别:
nt是java提供的8种原始数据类型之一。Java为每个原始类型提供
了封装类,Integer是java为int提供的封装类。int的默认值为0,
而Integer的默认值为null,即Integer可以区分出未赋值和值为0
的区别,int则无法表达出未赋值的情况,例如,要想表达出没有
参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发
中,Integer的默认为null,所以用el表达式在文本框中显示时,
值为空白字符串,而int默认的默认值为0,所以用el表达式在文本
框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型。
1.两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false
2. java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存
③两个都是new出来的,都为false
④int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比
具体应用:
Integer.parseInt()是把()里的内容转换成整数。Integer.parseInt(String)遇到一些不能被转换为整型的字符时,会抛出异常。
Integer.parseInt(String)的作用就是将String字符类型数据转换为Integer整型数据。
问题三:dopost与doget区别:
两者都是传送数据的,在service中处理方法一样
当服务器创建servlet对象后,该对象会调用init方法初始化自己,
以后每当服务器再接收到一个servlet请求时,就会产生一个新线程
,在这个线程中让servlet对象调用service对象检查HTTP请求类型
(get,post),并在service方法中根据请求类型对应的调用doGet ,doPost方法
http请求有两种一种是get请求,另一种是post请求,Servlet中
doGet()是处理get请求的,get请求是把要传的数据放在地址栏里
,有限制并且不安全。doPost()是处理post请求的,POST请求比
较安全,不在地址栏里显示
前台form是get 就doGet 前台是post就是doPost 。详细一点就是比如你页面上一个form。
。然后你提交这个form后 到yourServlet这个servlet后就在doGet()方法里有form提交过来的数据 在这个方法里对他进行处理。post也一样了。总而言之,都是对应前台的数据发送方式method
问题四:js与jsp与html语言区别
HTML(Hypertext Markup Language)是文本标记语言,它是静态页面。是一种解释性语言,所谓解释性语言就是指可以在浏览器上显示出来,不需要编译工具的语言。
JSP(Java server page )是通过java语言实现的,是Java语言的一种使用方式,从其英文全称就可以看出它是Java服务器端页面,所以是动态页面。需要经过JDK编译后发送给客户端显示。
JS(javaScript) 是一种脚本语言。可以以的形式混合在HTML页面中,使页面产生动态效果。
通俗简单点的理解:JSP就像做饭时的各种食材,js就像是厨师,将食材做成各种不同的色香味俱全的菜式(客户端的页面)。
问题五:request与response区别:
主要区别是Request获得用户的请求,比如你将一个字符串发送到服务器就用Request对象的方法接收。
response是响应 对象的请求, 对客户端发出的请求作出动态的响应,向客户端发送数据
当服务器处理完你的请求信息后,将处理结果发回客户端。
作用为响应用户需求,并传送处理结果给客户端
request:
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,既使用该对象可以获取用户提交的信息。
当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。首先,将获取的 字符串用ISO-8859-1进行编码,并将编码存发到一个字节数组中,然后再将这个数组转化为字符串对象即可
总结为获取用户提交的信息
问题六:
1.class.forname() 加载驱动 ojdbc
2.获取连接 (用驱动)
Connection con=DriverManager.getConnection(url,user,password)
注意:尽量不要在try代码行里写文件,影响效率啊!
3.prestatement
简单的说,所有sql语句运行前,必然有个解析过程,就好象java代码的编译一样。如果同样的语句运行多次,当然希望它是一次编译多次运行的。这样可以减少编译的过程。 PrepareStatement就是干这事的。 它其实返回一个编译后的标识。用这个标识系统就可以直接找到编译过的sql来运行。不必要把每次的sql都编译一遍。
此外有些sql只是部分值不同,其他都一样。那么就把不同的部分变成 参数,sql编译后,每次使用不同的参数来实行。
另外由于预编译了,那么sql注入的破坏方式就无效了。因为传入的参数不会改变sql语句的运行。
getcontextpath 及clear action
4.<%....%>
在JSP页面中使用,在%之间 直接写JAVA代码。
因为JSP页面运行是通过Servlet自动编译成JAVA代码。
<%和%>之间的是jsp的程序,至于里面如何逻辑运算,如何表达,都是JAVA代码,在服务器上运行。
其余的是html代码,在客户端运行
<%@ page %>JSP指令元素
<%@ include %>页面包含指令元素
<%@ taglib %>标签指令元素
<% %>JSP脚本小元素
<%! %>JSP声明元素:用来声明一些函数或变量
<%= %> JSP表达式元素:在页面上输出信息
request.getcontextpath
指的是根目录下的xxxx.jsp
假设你的要目录http://localhost:8080,
你现在访问的页面为http://localhost:8080/admin/manage.jsp
则
指向的链接是:http://localhost:8080/xxxx.jsp
链接的是当前jsp文件路径下的xxxx.jsp
上例指向的链接是:http://localhost:8080/admin/xxxx.jsp
5.form表单的应用格式
form是一个表单
action="index.jsp"双引号里面要填写的是 你希望将这个表单提交到什么路径。(比如另外一个页面)
method="post"指的是提交的方式,post的意思是提交的时候不在地址栏显示你的提交信息(比如账号密码之类的)。为了用户的信息安全。
name=""这里双引号里面指的是 你想给你的这个表单 取的一个名字