学习java遇到的一些问题,日常记录

2021年8月14日
1.
a.进行maven的学习中,在pom.xml文件中导入依赖

<!--加入servlet`在这里插入代码片`的依赖(servlet的jar包)-->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>
<!--jsp相关的依赖(jsp相关的jar包)-->
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.1</version>
  <scope>provided</scope>
</dependency>

网站运行会出现问题,显示:HTTP状态 500 - 内部服务器错误,
部署tomcat的版本为10.0.8,不使用tomcat自带的jsp和servlet的jar包
b.部署tomcat的版本为10.0.8,使用tomcat自带的jsp和servlet自带的jar包,不适用maven依赖的jsp-api和servlet-api的jar包,此时网站可以顺利的进行展示
导致此状况可能的原因:jdk的版本为11,tomcat的版本为10.0.8,依赖导入的jar包可能与tomcat的版本不兼容,需要改用低版本的tomcat进行部署。
问题已解决:tomcat版本问题,导致的不兼容,tomcat的版本修改为tomcat9.0.0.M10。

温馨提示:此处的tomcat环境变量我在使用时并未进行配置,直接将解压后的tomcat文件包通过idea的edit->settings->Build、execution、deployment->application Servers添加文件夹。在这里插入图片描述
2.小技巧
右键单击点击pom.xml文件,找到maven选项,选择其中的reimport,可以刷新pom.xml文件

2021年8月15日
1.注意电脑上安装的mysql的版本,与mybatis所用数据库(即maven导入依赖mysql-connector-java)之间的版本关系,当数据库的版本大于8时,应当将数据库注册驱动和url改为如下所示

<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/shujuku?useSSL=false&amp;serverTimezone=UTC"/>

2021年8月20日
http://www.elecfans.com/d/950064.html
cmd窗口中常用的mysql命令

2021年8月27日
1.在jsp文件中定义:

<%
String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
<%--
request.getSchema()可以返回当前页面使用的协议,例如:“http”
request.getServerName()可以返回当前页面所在的服务器的名字,例如:“localhost"
request.getServerPort()可以返回当前页面所在的服务器使用的端口,例如8080,
request.getContextPath()可以返回当前页面所在的应用的名字,例如:“crm”
 --%>
<base href="<%=basePath%>">
%>
标签为页面上的所有链接规定默认地址或默认目标, 标签必须位于 head 元素内部

2.请求转发和重定向

请求转发:request.getRequestDispatcher(URL地址).forward(request, response);
客户端浏览器地址栏中不会显示出转向后的地址
处理流程:
(1)客户端发送请求,Servlet做出业务逻辑处理。
(2)Servlet调用forword()方法,服务器Servlet把目标资源返回给客户端浏览器。
转发是在服务器内部进行的,写绝对路径/开头指的是当前的Web应用程序。绝对路径写法:/资源名。

重定向:response.sendRedirect(URL地址);
浏览器的地址栏中可以看到跳转后的链接地址
处理流程:
(1)客户端发送请求,Servlet做出业务逻辑处理。
(2)Servlet调用response.sendReadirect()方法,把要访问的目标资源作为response响应头信息发给客户端浏览器。
(3)客户端浏览器重新访问服务器资源xxx.jsp,服务器再次对客户端浏览器做出响应。
重定向response.sendRedirect(“xxx”)是服务器向客户端发送一个请求头信息,由客户端再请求一次服务器。/指的Tomcat的根目录,写绝对路径应该写成"/当前Web程序根名称/资源名" 。

拓展知识:
在web中,页面路径主要的写法有:
(1)重定向(浏览器发起资源路径请求)
(2)转发(服务器发起资源路径请求)
(3)超链接(浏览器)
(4)form表单提交的action(浏览器)

3.过滤器filter配置web.xml
(1).Filter按照配置在web.xml中的先后顺序,每一个Filter都会进行url-pattern的匹配,匹配成功,则会执行对应的Filter方法
(2). 1个Filter可以设置多个url-pattern
(3). Filter匹配有3种模式
a.精确匹配,例:/directory/file1.jsp
b.目录匹配,例: /directory/*
c.扩展匹配,例:.jsp
不支持下面的格式:/direcotry/
.jsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值