栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-11-3(java-web2)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-11-3(java-web2)

一、jsp 1.什么是jsp

java server pages :java服务器端页面,也和servlet一样,用于动态web技术

最大的特点:

  • 和html差不多
  • 区别
    • html只给用户提供静态数据
    • jsp页面可以嵌入java代码,为用户提供动态数据
2.jsp原理:

jsp本质上是servlet

//初始化
public void _jspInit() {
  }
//销毁
  public void _jspDestroy() {
  }
//jspservice
  public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
      throws java.io.IOException, javax.servlet.ServletException

一些内置对象

    final javax.servlet.jsp.PageContext pageContext;    //页面上下文
    javax.servlet.http.HttpSession session = null;        //session
    final javax.servlet.ServletContext application;    //applicationContext
    final javax.servlet.ServletConfig config;        //config
    javax.servlet.jsp.JspWriter out = null;        //out
    final java.lang.Object page = this;                //page:当前
    HttpServletRequest request                        //请求
    HttpServletResonse response                        //响应

流程图

在jsp页面中:

java代码原封不动

htmt转化为out.write

 3.jsp基础语法:

jsp表达式<%=变量或者表达式%>

<%--  jsp表达式--%>
  <%=new java.util.Date()%>

jsp脚本片段<%   %>

<%
  int sum=0;
  for (int i = 0; i < 10; i++) {
    sum+=i;
  }
  out.println("sum="+sum+"");
%>

这是一个jsp文档


<% for (int i = 0; i < 5; i++) { %> 拆分 <% } %>

jsp声明<%! %>

声明会被编译到java的类中,其他的会被写到_jspService方法中

<%!
  static {
    System.out.println("Loading");
  }
  private int globalVar=0;
  public void kun(){
    System.out.println("进入了kun方法");
  }
%>

jsp的注释无法显示在客户端

4.jsp的指令
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page errorPage="error/500.jsp" %>      //定制错误页面
<%@ include file="文件" %>

5、九大内置对象

  • PageContext        存东西
  • Request               存东西
  • Response
  • Session                  存东西
  • Application                  [SerlvetContext]           存东西
  • config                      [ServletConfig]
  • out
  • page
  • exception
    <%
        pageContext.setAttribute("name","小ing");   //只在一个页面中有效
        request.setAttribute("name2","小明2");        //一次请求中有效
        session.setAttribute("name3","小明3");        //一次会话中有效
        application.setAttribute("name4","小明4");    //在服务器中有效
    %>
6、jsp标签,jstl标签,el表达式

el表达式:

  • 获取数据
  • 执行运算
  • 获取web开发常用对象

    javax.servlet.jsp.jstl
    jstl-api
    1.2



    taglibs
    standard
    1.1.2

jsp标签


    
    

jstl表达式

<%--引入jstl核心标签库 core--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--引入jstl核心标签库 core--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    Title



If测试

<%-- el表达式获取表单中的数据 ${param.参数名} --%>
<%--判断提交的用户名是管理员,则登录成功--%>
二、javaBean

实类体

javabean有特定的写法

  1. 必须有一个无参构造
  2. 属性必须私有化
  3. 必须有对应的get、set方法

一般用来左数据库映射

orm:对象关系映射

  1. 表——> 类
  2. 字段——>属性
  3. 行记录——>对象
idnameageaddress
1小明10北京
2小明11天津
3小明12武汉
class People{
    private int id;
    private String name;
    private int age;
    private String address;
}

class A{
    new People(1,"小明",10,"北京");
    new People(2,"小明",11,"天津");
    new People(3,"小明",12,"武汉");
}
三、mvc三层架构

什么是mvc:model view controller   模型、试图、控制器

Model

  • 业务处理:业务逻辑(service)
  • 数据持久层:CRUD(dao)

View:

  • 展示数据
  • 提供链接发起servlet请求(a,form...)

Controller(servlet)

  • 接受用户的请求(req:请求参数,session信息)
  • 交给业务层处理对应代码
  • 控制试图的跳转

登录——接受登录请求——处理用户的请求(获取用户登录的参数)——交给业务层处理登录业务(判断用户账号密码是否正确:事务)——dao层查询用户账号密码是否正确——数据库

四、过滤器(Filter)

filter:用来过滤网站的数据

filter开发步骤

  1. 导报
  2. 编写过滤器
public class CharacterEncodingFilter implements Filter {
//    初始化
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("初始化");
    }
//chain:链
    
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/html;charset=UTF-8");
        System.out.println("执行前");
        filterChain.doFilter(servletRequest,servletResponse);
        System.out.println("执行后");
    }
//  销毁
    public void destroy() {
        System.out.println("销毁");
    }
}

用Filter实现拦截(登录拦截)

登录界面

public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        获取参数
        String username = req.getParameter("username");
        if (username.equals("admin")){   //登陆成功
            req.getSession().setAttribute(Constant.USER_SESSION,req.getSession().getId());
            resp.sendRedirect("/sys/success.jsp");
        }else {             //登陆失败
            resp.sendRedirect("/error.jsp");
        }
    }

登录成功注销界面

public class LogoutServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Object user_session = req.getSession().getAttribute(Constant.USER_SESSION);
        if(user_session!=null){
            req.getSession().removeAttribute(Constant.USER_SESSION);
            resp.sendRedirect("/login.jsp");
        }
    }

filter拦截

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request1 = (HttpServletRequest) request;
        HttpServletResponse response1 = (HttpServletResponse) response;
        Object user_session = request1.getSession().getAttribute(Constant.USER_SESSION);
        if (user_session==null){
            response1.sendRedirect("/login.jsp");
        }
        chain.doFilter(request,response);
    }

        loginservlet
        com.kun.servlet.LoginServlet
    
    
        loginservlet
        /servlet/login
    
    
        logoutservlet
        com.kun.servlet.LogoutServlet
    
    
        logoutservlet
        /servlet/logout
    
    
    
        SysFilter
        com.kun.filter.SysFilter
    
    
        SysFilter
        /sys/*
    

JDBC

package com.kun.test;

import java.sql.*;

public class Testjdbc {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
//        解决中文乱码
        String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=gbk";
        String username="root";
        String password="root";
//        加载驱动
        Class.forName("com.mysql.jdbc");
//        连接数据库
        Connection connection = DriverManager.getConnection(url, username, password);
//        向数据库发送sql的对象
        Statement statement = connection.createStatement();
//        编写sql
        String sql="select * from student.teacher";
//        执行sql
        ResultSet resultSet = statement.executeQuery(sql);

        while (resultSet.next()){
            System.out.println("id:"+resultSet.getObject("id"));
            System.out.println("name:"+resultSet.getObject("name"));
            System.out.println("pwd:"+resultSet.getObject("pwd"));
            System.out.println("sex:"+resultSet.getObject("sex"));
            System.out.println("birthday:"+resultSet.getObject("birthday"));
            System.out.println("address:"+resultSet.getObject("address"));
            System.out.println("email:"+resultSet.getObject("email"));
            System.out.println("age1:"+resultSet.getObject("age1"));
        }
//        关闭链接
        resultSet.close();
        statement.close();
        connection.close();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号