0
点赞
收藏
分享

微信扫一扫

2021-07-19

Spinach菠菜 2022-05-02 阅读 140

新职课9-2任务卡

一、 搭建web环境

①下载tomcat,将其放在D盘根目录下即可(去tomcat官网下载即可)
②打开idea先新建一个java工程,给其添加框架支持,勾选webApplication
在这里插入图片描述
③点击Add configuration在这里插入图片描述
④配置tomcat信息(有Fix一定要修复!)
在这里插入图片描述
⑤配置完成后,运行一下服务器(那个绿色的三角形)
在这里插入图片描述
⑥出现这个画面就说明你的服务器已经配置好了
在这里插入图片描述

二、 Servlet

①要想编写你人生中第一个servlet,首先先把该引入的jar包先引入好,这边为了方便,直接将tomcat里的lib丢进项目里了,如果不导入jar包,无法引用HttpServlet类
看下图操作
在这里插入图片描述
②找到你自己下载的tomcat
在这里插入图片描述
③一定要记得Apply(应用)
在这里插入图片描述
完成以上操作后可以开始编写代码了
④直接上代码

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(urlPatterns = "/")
public class FirstServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //用于处理get请求
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //用于处理post请求
    }
}

⑤那么恭喜你完成了人生中第一个Servlet,具体如何处理请求,你还需要深入学习

三、 JSP

JSP是动态页面(页面数据可以动态更新,支持嵌套java代码和html代码),与单单html静态网页不同

那么问题来了,该如何嵌套java代码呢?
表达式标签 <%= 表达式%> 在页面上显示的效果
程序代码标签 <%java代码%> 页面上动态展示内容

JSP的内置对象:
request:单次请求
session:浏览器访问期间(会话期间)
application:服务器启动期间,所存的数据可以跨浏览器

做个以上的了解就够了,JSP目前来说已经慢慢被淘汰了,现在的项目大都是前后端分离的模式

四、 Filter 与 Listener

①过滤器写法(要么在web.xml文件中配置,要么使用注解的方式)

首先创建一个java类,这个类要实现Filter接口
在这里插入图片描述

public void destroy() { //销毁的⽅法}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain
chain) throws ServletException, IOException {
 //过滤⽅法 主要是对request和response进⾏⼀些处理,然后交给下⼀个过滤器或
Servlet处理
 chain.doFilter(req, resp);
 }
 public void init(FilterConfig config) throws ServletException {
 /*初始化⽅法 接收⼀个FilterConfig类型的参数 该参数是对Filter的⼀些配置*/
 }

chain.doFilter(req, resp);可以简单理解为放行,给servlet去处理

②监听器写法
监听器的编写步骤(重点):

  1. 编写⼀个监听器类去实现监听器接⼝
  2. 覆盖监听器的方法
  3. 需要在web.xml中进行配置注册或者通过注解的方式

ServletContextListener
监听ServletContext域的创建与销毁的监听器
Servlet域的生命周期
何时创建:服务器启动创建
何时销毁:服务器关闭销毁
ServletContextListener监听器的主要作用
初始化的⼯作:初始化对象、初始化数据(加载数据库驱动、连接池的初始化)
加载⼀些初始化的配置⽂件(spring的配置⽂件)
任务调度(定时器—Timer/TimerTask)
HttpSessionListener
监听Httpsession域的创建和销毁的监听器
HttpSession对象的生命周期
何时创建:第⼀次调⽤request.getSession时创建
何时销毁:服务器关闭销毁、session过期(默认30分钟,修改默认的30分钟是在
Tomcat的web.xml,修改当前项⽬的过期时间是在自己项目的web.xml中)、⼿动销毁
HttpSessionListener监听器的主要作用:
由于每次访问网站都会默认创建session对象(jsp页面中page指令中的session属性默认为
true,即被访问时创建session),可以⽤于计数网站访问过的人
ServletRequestListener
监听ServletRequest域创建与销毁的监听器
ServletRequest的生命周期
创建:每⼀次请求都会创建request
销毁:请求结束
用法同上,⽤处不是很大,此处省略。

五、 MVC

先声明,mvc设计模式不属于23种设计模式之一

M:(Model) 模型 : 应用程序的核心功能,管理这个模块中用的数据和值

V:(View)视图: 视图提供模型的展示,管理模型如何显示给用户,它是应用程序的外观

C:(Controller)控制器: 对用户的输入做出反应,管理用户和视图的交互,是连接模型和视图的枢纽。

如果用传统的jsp去写难免会导致耦合度过高的问题,而MVC用于将web层进行职责解耦

六、 AJAX

ajax是前端向后台发送请求的一种形式,实现异步,就是不用刷新页面就可以达到数据实时更新的效果

具体实现代码:

 $.ajax({
 url:"getuser",
 data:"userid="+uid,
 type:"post",
 dataType:"JSON",//设置服务器端响应回来的格式
 success:function(rs){
 //这个rs就是你从后台拿到的java对象,你可以去操作它里面的属性
 //alert(rs.username);
 $("[name='uname']").val(rs.username);
 $("[name='address']").val(rs.address);
 if(rs.sex=='男'){
 $("#boy")[0].checked=true;
 }else{
 $("#girl")[0].checked=true;
 }
 }
 });

七、 文件上传

直接上代码:

@WebServlet(urlPatterns = "/toUpload")
public class FileLoadServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        try {
            SmartUpload su=new SmartUpload();
            JspFactory factory=JspFactory.getDefaultFactory();
            PageContext pagecontext= factory. getPageContext(this, req,resp, null,false,1024,true);
            su.initialize(pagecontext);
            su.setCharset("utf-8");
            su.upload();
            File file = su.getFiles().getFile(0);
            //得到文件的基本信息
            String filename=file.getFileName();
            String type=file.getContentType();
            System.out.println("type="+type);
            String url="uploadfile/"+filename;
            file.saveAs(url, SmartUpload.SAVE_VIRTUAL);
            req.setAttribute("filename",filename);
            String uname=su.getRequest().getParameter("uname");
            System.out.println("uname="+uname);
            req.getRequestDispatcher("success.jsp").forward(req, resp);
        }catch  (SmartUploadException e){
            e.printStackTrace();
        }

    }
}
举报

相关推荐

0 条评论