JSP总结

一、


静态网页和动态网页的区别:
动态网页时在服务器端运行的程序,它们会随不同用户、不同条件,返回不同的内容,静态网站无法实现搜索、购买登陆等交互功能,无法对静态页面的内容进行实时更新。


B/S架构是什么,和C/S架构的区别有哪些
B/S架构即Browser/Server,浏览器/服务器架构
B/S架构和C/S架构有各自的优势,B/S架构并不是C/S架构的替代品
他们之间的区别如下:
B/S:软件安装(浏览器)
    升级维护(客户端零维护)
    平台相关(与操作系统平台的关系最小化)
    性能安全(在响应速度和安全性上需要话费更多设计成本)
C/S:软件安装(安装专门的客户端应用)
    升级维护(客户端需要单独维护和升级)
    平台相关(对客户端操作系统一般有限制)
    性能安全(能充分发挥客户端处理能力,客户端响应快)
URL:Uniform Resource Locator统一资源定位符
http:(协议)//localhost:8080(主机IP地址:端口号)/news/index.html(项目资源地址)
JSP:Java Server Pages 
作用:在HTML中潜入Java脚本代码
page指令:通过设置内部的多个属性定义整个页面的属性
常用属性:language、import、contentType(JSP页面所采用的编码方式)
小脚本:<%%>
指令:<%@%>
表达式:<%=%>
声明:<%!%>(声明内写方法)
注释:<%----%>
JSP执行过程:1.翻译(.JSP-->.JAVA)2.编译(.JAVA-->.CLASS)3.执行
第一次请求后,web容器可以重用上一次编译好的文件所以第二次比第一次快
Web程序的常见错误:
1.未启动tomcat
2.未部署Web应用
3.URL输入错误
4.目录不能被引用(web-inf下不能引用)




二、


什么是JSP内置对象?
JSP内置对象是Web容器创建的一组对象


request和response对象的作用和常用方法?
request包含了有关浏览器请求的信息
response可用于设置响应参数及取得响应流


针对get和post请求如何处理中文乱码?
post:request.setCharacterEncoding("utf-8");
get:1.修改xml文件
    2.name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
String name=request.getParameter("name");
Byte[] byte=name.getBytes("ISO-8859-1");
name=new String(name,"utf-8");
转发和重定向的区别和引用场合是什么?
转发:1.携带数据
      2.地址栏不改变
      3.在服务器处理
      4.请求一次
重定向:1.不携带数据
2.地址栏改变
3.在客户端处理
4.请求两次


session对象的作用和常用方法是什么?
当用户向服务器发出第一次请求时,服务器会为该用户创建唯一的会话,会话将一直延续到用户访问结束
作用:允许用户访问会话的相关信息,以及绑定到数据到会话。


三、
JSP中提供了哪几种作用域?
page:在一个页面范围内有效,通过pageContext对象访问
request:在一个服务器请求范围内有效
session:在一次会话范围内有效
application:在一个应用服务器范围内有效


cookie的作用?
cookie可以实现服务器和浏览器之间的数据传递


application作用域与session作用域有什么区别?
application对整个项目生效,不同用户都可以访问,
session只对当前会话有效,session只有当前会话可以访问,会话结束后数据销毁
cookie在哪里保存用户信息?保存的信息是什么类型?
cookie以文本格式在本地保存用户信息,返回String类型的数据对象
cookie和session对比:
session:
1.在服务器端保存用户信息
2.session中保存Object类型
3.随会话结束将存储在其中的数据销毁
4.保存重要信息
cookie:
1.在客户端保存信息
2.保存String数据类型
3.可以长期保存在客服端
4.保存不重要用户信息


JavaBean(本质是一个类):
分类:封装数据(实体类就是封装数据的javabean,属性私有化,getter和setter方法),封装业务(basedao就是封装业务的javabean)
JavaBean在Web应用开发中主要起什么作用?
封装数据和封装业务,javabean可以使代码复用,使数据显示和业务逻辑分开


四、
页面交互设计原则:统一性原则、美观性原则、易用性原则
层与层之间的关系:


五、
JNDI:
JAVA Naming and Directory Interface,java命名和目录接口,通过名称将资源与服务进行关联
优点:
1.在应用与Java对象或资源之间建立松耦合的逻辑关联,简化应用对于资源的配置及维护工作;
2.可以在更大范围、不同应用之间共享资源
JNDI简单应用:
1.修改context.xml文件
<Context>
<Environment name="test" value="hello JNDI" type="java.lang.String"/>
</Context>
2.获取资源
Context ctx=new InitialContext();
String test=(String)ctx.lookup("java:comp/env/test");
连接池:
传统数据库连接方式的不足:
1.需要经常与数据库建立连接,在访问结束后必须关闭连接释放资源
2.当并发数量较大时,执行速度受到极大影响
3.系统的安全性和稳定性较差
连接池的好处:
1.避免反复创建和销毁导致的开销及拖延
概念:数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个;释放哪些空闲时间超过最大空闲时间的数据库连接,以避免由于没有释放数据库连接而引起的数据连接泄露,这项技术能明显提高对数据库操作的性能。


通过JNDI访问DataSource(使用连接池实现数据库连接步骤):
1.配置context.xml文件
<Context>
<Resource name="jdbc" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="123" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/dataBaseName?userUnicode=true&amp;characterEncoding=utf-8"/>
name:指定Resource的JNDI名称
auth:指定管理Resource的Manager
type:指定Resource所属的java类
maxActice:指定连接池中处于活动状态的数据库连接的最大数目
maxIdle:指定连接池中处于空闲状态的数据库连接的最大数目
maxWait:指定连接池中的连接处于空闲的最长时间
</Context>
2.配置web.xml文件
<resource-ref>
<res-ref-name>test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.将jar包复制到tomcat/lib目录下
4.访问数据源
Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/test");
Connection conn=ds.getConnection();//获取连接
三层:表示层-->业务逻辑层-->数据访问层
分层原则:
上层依赖其下层,依赖关系不跨层 


表示层不能直接访问数据访问层
上层调用下层的结果,取决于下层的实现
下一层不能调用上一层 

下一层不依赖上一层


上层的改变不会影响下一层
下层的改变会影响上一层得到的结果
在上一层中不能出现下一层的概念 
分工明确,各司其职


分页思路(步骤):
1.确定pageSize;
2.确定pageCount;
(1)查询数据总条数totalCount;
(2)计算pageCount
pageCount=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
3.编写sql语句,实现数据查询
select * from news limit (pageIndex-1)*pageSize,pageSize;
4.在JSP页面进行分页显示设置


上传文件需要注意哪些问题?
 post entype:multipart/form-data
上传文件处理页的实现步骤
1.创建FileItemFactory对象
2.创建ServletFileUpload对象
3.解析form表单提交的所有表单元素数据
1)如果是普通表单元素:获取该元素的名值对
2)如果是文件数据
获取文件名等参数,保存文件数据到服务器


Servlet和JSP的关系和区别
 JSP本质上是一个servlet,当服务器运行JSP时,将JSP转化成一个Servlet并且编译执行,动态获取数据生成HTML代码,servlet是JSP技术的基础。
 JSP适合表示层开发,Servlet适合封装控制逻辑


servlet生命周期
1.实例化:一般在第一次请求时创建
2.初始化:在servlet实例化时调用init()方法
3.服务:每请求一次调用一次service()方法
4.销毁:web容器关闭时调用destroy()方法
servlet在web.xml中配置Servlet的主要元素:
<servlet>
<servlet-name>name</
<servlet-class>class</
</servlet>
<servlet-mapping>
<servlet-name>name></
<url-pattern>path</
</


EL Express Language
EL优点:
1.使JSP内无需JAVA代码
2.自动类型转换
3.使得JSP的开发变得简单
JSTL配合EL使用,进行流程控制
作用域:pageScope,requestScope,sessionScope,applicationScope


Ajax通过使用XMLHttpRequest对象,以异步方式在客户端与服务端之间传递数据,并结合JavaScript、CSS等技术实现当前页面局部刷新


ajax请求与普通请求的主要区别:
1.发送请求方式不同
传统:浏览器发送同步请求
ajax:异步引擎发送请求
2.服务器响应不同
传统:响应一个完整页面
ajax:响应内容只是需要的数据
3.客户端处理方式不同
传统:需等待服务器响应完成并重新加载整个页面后用户才能操作
ajax:可以动态更新页面中的部分内容,不影响其它页面进行操作
ajax主要包括哪些技术
XMLHttpRequest
JS
DOM+CSS
XML/JSON/XHTML
使用原生js发送ajax请求的步骤
new一个请求对象
给请求对象装载请求内容
发送请求
回调函数接收响应内容并进行页面显示


列举除$.ajax()外,jQuery提供的其他Ajax方法
$.get();$.post();$.getJSON();.load()...
简述.load()方法在调用和返回值方面与其他Ajax方法的区别
.load()不是全局函数,而是针对与选择器匹配的元素执行
$("选择器").load(url,data,function(){});默认为get方式请求,若data参数是一个对象,则使用post方式


解析表单元素:
serialize() serializeArray()


JSON
 JSON javaScript Object Notation是一种轻量级地数据交互格式。通常用来在客户端和服务器之间传递数据
优点:
1.轻量级
2.结构简单
3.易于解析


setCustomValidity


select <列名|常量|表达式|函数> 
  from 表名 
  [where 条件] 
  [group by 列名] 
  [having 条件]
  [order by 列名 asc|desc ]  
          [limit [位置偏移量,]显示的行数]















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值