JavaWeb复习-课后笔记

案例

用tomcat配置

首先要配置相应的环境

1、创建数据库,在IDEA中连接数据库,配置数据源

2、在pom中导入对应的依赖(例:mybatis,mysql,servlet,lombok)

<dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.mysql</groupId>
      <artifactId>mysql-connector-j</artifactId>
      <version>8.0.33</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.28</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.13</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

3、在resources资源目录中创建配置文件,直接在官网中复制即可

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
</configuration>

示例:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <package name="com.wang.pojo"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
<!--        <com.wang.mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
        <package name="com.wang.mapper"/>
    </mappers>
</configuration>

使用了typeAliases创建别名,默认为类名,不再区分大小写

下面的mapper使用了package包扫描的方式

4、创建mapper包,在里面创建接口,

例如

public interface UserMapper {
    @Select("select * from tb_user where username=#{username} and password=#{password}")
    User select(@Param("username") String username,@Param("password") String password);
}

5、配置对应的xml实现类,首先去官网复制对应的配置信息

修改namespace的路径为自己mapper里面的接口

这里的映射文件的路径要和Java源代码中的路径相同

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>

 

6、创建Servlet类,使用@WebServlet注解来实现请求的接收路径,接下来处理请求即可

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 给输出的值设置编码方法,放置乱码
        System.out.println("11111");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        System.out.println("username"+username+"\t password"+password);
        // 获取sqlsessionfactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        User select = userMapper.select(username, password);
        sqlSession.close();
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        if (select!=null){
            // 登陆成功
            writer.write("登录成功");
        }else {
            // 登录失败
            writer.write("登录失败");
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req,resp);
    }
}

笔记:

 

查询单个:  

 

 

 条件查询

 

用where和if配合实现动态sql

 

单条件的动态查询

 

主键返回

 

可以使用set实现修改值的时候的动态sql

 

动态,一次性删除多个

 

 

 

open:从什么开始,在开头拼接

close:在尾部拼接

 

 

注解开发:

 

http请求

 

 

 

各种状态码

 

Servlet的三个方法

 

 

Servlet中的五个方法

 

在init中的config要提升作用域,这样,在getServletConfig()方法中才能返回一个ServletConfig对象

Servlet的匹配规则

 

 

优先级了解即可

使用XML配置路径(这种方法是老版本的,现在用注解实现)

 

request

 

 

 获取请求头:

request的三种通用的获取信息的方法

 

 

 

处理POST请求的中文乱码问题,(只对POST请求有效)

 

解决get的乱码

 

这种方法对get和post都有用

请求转发

 

 

转发的特点

 

response实现重定向

 

重定向的特点  

response的传递的响应信息

 

 response重定向和request转发的区别比较

路径要不要加虚拟目录

 

重定向的两种方式,以及通过动态获取当前的虚拟目录实现重定向

 

 

相应字节数据

 

利用commons-io包提供的方法,简化拷贝操作

 

 

JSP

 

 

El表达式

 

 

JSTL

 

 

 

foeach

会话技术

一次会话中多次请求之间的数据共享

Cookie,session

 

cookie发送cookie时,由于是http协议,tomcat自动加上响应头

再次发送请求的时候,会自动添加请求头

 

Cookie存活时间  

以秒为单位

 

默认不支持中文,使用utf-8转码后在发送,使用的时候再转回来就行了

Session

 

Session是基于Cookie实现的,Session再保存信息时,会默认给浏览器发送一个Cookie,来唯一标识这个用户浏览器,下次这个浏览器再次访问的时候,服务器会获取里面的Cookie,找到这个唯一的标识,然后就可以在自己的服务器中找到对应的Session  

 

 

钝化,在服务器正常关闭之后,tomcat会自动将Session写入到硬盘中保存起来,下次服务器再次启动的时候,会重新读取硬盘中的数据,重新加载到Session中

Cookie和Session的区别

Filter过滤器

 

Filter执行顺序

 

拦截方法

执行顺序

按照过滤器类名的自然排序进行排列的

 

 放行的时候,要把相关的资源也放行,例如CSS,Js都要放行

 

代码示例

 

 

 

Listener监听器

 

 

AJAX

 

 

同步和异步

 

 

快速入门

 

案例:

后台请求:

 

前端:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    // 获取xmlhttp
    var xmlhttp;
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    // 发送请求,可以使用get请求也可以使用post请求,这里的路径要使用请求的绝对路径
    xmlhttp.open("GET","http://localhost:8080/a/ajax");
    xmlhttp.send();
    // 接收返回的数据
    xmlhttp.onreadystatechange = function (){
        // 验证状态是否正确
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
            alert(xmlhttp.responseText);
        }
    }


</script>
</body>
</html>

 

由于是get请求,所以这里采用的是字符串拼接的方式

 

Axios快速入门

 

需要下载这个JS文件

使用别名,可以简化书写

 

 

JSON字符串,可以和Java对象相互转换

 

 

实现JSON和Java对象的相互转换

 

 

 

设置字符编码

 

由于接收的是JSON字符串,所以,不能用常规的request..getParameter("name")来接收数据了,需要用接收字符数据的方法来接收

 

Vue快速入门

 

 

常用指令

 

 

 

 

双向绑定

事件绑定

 

两种使用方式,可以使用v-on:也可以使用@

 

 

示例

 

生命周期

 

 

使用Vue优化代码

 

 

 

Element基于Vue2.0的一个组件

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值