新职课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去处理
②监听器写法
监听器的编写步骤(重点):
- 编写⼀个监听器类去实现监听器接⼝
- 覆盖监听器的方法
- 需要在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();
}
}
}