华清远见-重庆中心-javaWeb后端技术总结

JavaWeb

使用Java开发Web服务的技术,统称为JavaWeb。

B/S与C/S模式

B/S:Browser/Server 浏览器/服务器模式: 用户只需要一个浏览器即可访问服务器

C/S:Clint/Server 客户端/服务器模式: 用户需要下载客户端才能访问服务器

三层架构

三层架构中的三层,是指“数据访问层、业务逻辑层和视图表现层”

数据访问层:用于连接数据库,对数据做增删改查的操作

业务逻辑层:用于处理业务逻辑,在适当的情况下调用数据访问层中的方法

视图表现层:用于展示数据和提供用户输入数据的渠道,在适当的情况下调用业务逻辑层中的方法

页面向服务端提交数据的方式

//使用form表单的name属性显示提交
//提交的数据会暴露在浏览器的地址栏中
<form action="http://localhost:8080/day1/hero" method="get">
   <input type="text" name="username">
   <input type="submit">
</form>

//使用form表单的name属性隐式提交
//提交的数据不会暴露在浏览器的地址栏中
<form action="http://localhost:8080/day1/hero" method="post">
  <input type="text" name="username">
  <input type="submit">
</form>

 通过"?参数名=值"方式提交

//在a标签的href属性中加入这部分,如果有多个参数,通过&拼接
<a href="https://www.baidu.com/s?wd=hello&a=1&b=2">访问</a>

服务器端获取页面传递的数据

//服务器端获取页面传递的数据
//String str=request.getParameter("name名或?后的参数名");
class TestServlet extends HttpServlet{
doGet(HttpServletRequest req,HttpServletResponse resp){
//获取表单提交的数据req.getParameter("表单中某个表单元素的name值");
String username = req.getParameter("username");
}
doPost(HttpServletRequest req,HttpServletResponse resp){
doGet();
}
}


JSP

Java Server Page:使用Java开发、运行在服务器上的页面。

JSP的组成

1.HTML元素

2.脚本(java代码)

3.表达式

4.指令

5.注释

6.声明

7.动作

跳转

页面与页面之间跳转

<a href="另一个页面的地址">超链接</a>
<form action="另一个页面的地址">
    <input type="submit">
</form>
<button id="btn">跳转</button>
<script>
   $("#btn").click(function(){
      location.href="另一个页面的地址";
     location.assign("另一个页面的地址");
   });
</script>

页面跳转至Servlet

<a href="servlet映射名">超链接</a>
<form action="servlet映射名">
   <input type="submit">
</form>

Servlet跳转到页面或另一个Servlet

请求转发(内部跳转)
request.getRequestDispatcher("跳转的地址").forward(request,response);

重定向(外部跳转)
response.sendRedirect("跳转的地址");

跳转时传递数据

//保存
作用域对象.setAttribute(String str,Object obj);
//将一个名为str的对象obj保存到某个作用域中。request就是一个作用域。
List<泛型> 集合 = dao.查询();
//将查询到的集合保存到请求中,命名为list
request.setAttribute("list",集合);


//获取
Object obj = 作用域对象.getAttribute(String str);
//获取到的数据是Object类型,通常需要转型
List<泛型> list =(List<泛型>) request.getAttribute("list");

四大作用域对象

pageContext

当前页面对象。共享数据区域范围为当前页面。

如果不在同一个页面,数据无法读取。

request

请求对象。共享数据区域范围为一次请求。

如果跳转中途使用了重定向,数据无法读取。

session

会话对象。会话是用户访问服务器时的某个时间段。

共享数据区域范围在这个时间段内,默认30分钟。

如果在指定时间内没有操作或销毁会话时,数据无法读取。

application

项目对象。共享数据区域范围为整个项目。

在servlet中使用

  • pageContext

    servlet本身就是一个java类,在类中定义成员变量,就能在当前类中使用。

    所以在servlet中不会使用pageContext对象

  • request

    使用doGet/doPost/service方法中的HttpServletRequest参数req

  • session

  • //在servlet中使用session,需要通过请求对象request调用getSession()方法
    HttpSession session= req.getSession();
  • application


  //通过getServletContext()方法获取的ServletContext类型对象,就是当前项目对象
  ServletContext application = getServletContext();

  

总结

  • 在jsp页面中使用pageContext保存的数据,只能共享于当前页面
  • 通常在servlet中查询后的数据保存在request中,使用请求转发跳转到其他页面,在对应的页面中数据数据
  • 通常在登录后,将登录的用户保存在session中,无论用哪种方式跳转,都能从session中获取当时登录的用户。
  • 在application中保存一些共享于整个项目中的数据

Ajax

Asynchronous Javascript And XML

一种数据交互方式,请求和响应是异步的。

使用ajax能实现在整个页面不重新加载的情况下,更新局部内容。

在script标签中写ajax

<script>
某个节点.事件(function(){
//使用ajax异步提交数据
$.ajax({
//访问的URL地址
url:"servlet映射或具体url",
//提交的数据
data:{
//键:值
"形参":值,
"形参":值
},
//提交方式
type:"get/post/put/delete",
//成功访问URL后的回调函数
success:function(res){//res表示访问URL后返回的数据
},
//访问URL失败时的回调函数
error:function(){
}
});
});
</script>

监听器Listener

对于项目的某个操作进行监听,这个操作可以是创建或销毁application、session,发送请求、得到响 应。

实现一个监听器

1.创建一个类,实现某个监听器接口。常用的三个监听器接口

ServletContextListener      application监听器

HttpSessionListener          session监听器

ServletRequestListener     request监听器

2.重写某个监听器接口中方法

初始化的方法

销毁的方法

3.在web.xml中配置监听器或通过注解配置

过滤器Filter

1.创建一个类,继承HttpFilter

2.重写其中受保护的doFilter的方法

3.在web.xml中配置过滤器或使用注解配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值