网上商城——JAVA与数据库知识准备笔记(一)

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 method="get" action=“yourServlet”>form内容</form>。然后你提交这个form后 到yourServlet这个servlet后就在doGet()方法里有form提交过来的数据  在这个方法里对他进行处理。post也一样了。
get和post是请求方式。一般get携带的信息量有限制,而且他的内容会在显示栏里面出现,不安全。post可携带大量数据,并且信息不回出现在显示栏里比较安全。当实现查询功能时适合用get。get效率比post高些。

总而言之,都是对应前台的数据发送方式method

问题四:js与jsp与html语言区别
 HTML(Hypertext Markup Language)是文本标记语言,它是静态页面。是一种解释性语言,所谓解释性语言就是指可以在浏览器上显示出来,不需要编译工具的语言。


       JSP(Java server page )是通过java语言实现的,是Java语言的一种使用方式,从其英文全称就可以看出它是Java服务器端页面,所以是动态页面。需要经过JDK编译后发送给客户端显示。

        JS(javaScript) 是一种脚本语言。可以以<script>  code </script>的形式混合在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
<a href="<%=request.getContextPath()%>/XXXX.jsp">
指的是根目录下的xxxx.jsp
假设你的要目录http://localhost:8080,
你现在访问的页面为http://localhost:8080/admin/manage.jsp
则<a href="<%=request.getContextPath()%>/XXXX.jsp">
指向的链接是:http://localhost:8080/xxxx.jsp
<a href="XXXX.jsp">链接的是当前jsp文件路径下的xxxx.jsp
上例指向的链接是:http://localhost:8080/admin/xxxx.jsp

5.form表单的应用格式
form是一个表单
action="index.jsp"双引号里面要填写的是 你希望将这个表单提交到什么路径。(比如另外一个页面)
method="post"指的是提交的方式,post的意思是提交的时候不在地址栏显示你的提交信息(比如账号密码之类的)。为了用户的信息安全。
name=""这里双引号里面指的是 你想给你的这个表单 取的一个名字


  


 

展开阅读全文

没有更多推荐了,返回首页