JavaEE

JavaWeb基础使用简介

一、 request获取页面值

		//获取全部的请求路径
        String url = req.getRequestURL().toString();
        System.out.println("全部请求路径"+url);
        //获取部分请求路径
        String uri = req.getRequestURI();
        System.out.println("获取部分请求路径"+uri);
        //获取站点名
        String contextPath   = req.getContextPath();
        System.out.println("站点名"+contextPath);
        //获取请求方法
        String method = req.getMethod();
        System.out.println("获取请求方法"+method);
        //获取参数
        String name = req.getParameter("name");
        System.out.println("姓名"+name);
        //获取多个参数(复选框)
        String[] hobbys = req.getParameterValues("hobbys");
        if(hobbys!=null&&hobbys.length>0){
            for (String hobby:hobbys) {
                System.out.println("爱好:"+hobby);
            }
        }

二、设置获取页面信息的格式

		//设置获取请求的编码信息
        req.setCharacterEncoding("utf-8");
        //获取前台页面的数据
        String name = req.getParameter("name");
        String password = req.getParameter("password");
        System.out.println(name);
        System.out.println(password);

三、设置XML访问方式

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 						  			http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
       <servlet>
        <!--首先起名,随意就好-->
        <servlet-name>abc</servlet-name>
        <!--写服务器的类,全部路径-->
        <servlet-class>pratice</servlet-class>
    </servlet>
    <servlet-mapping>
        <!--名字和上面必须相同 -->
        <servlet-name>abc</servlet-name>
        <!--访问的路径-->
        <url-pattern>/ser</url-pattern>
    </servlet-mapping>
</web-app>

四、超级链接的跳转以及传递参数

<a href="index?name=Tom&password">删除</a>

String name = req.getParameter("name");
String password = req.getParameter("password");

五、重定向

		//重定向
        if(req.getParameter("name")!=""){
            resp.sendRedirect("success.jsp");
        }else{
            resp.sendRedirect("fail.jsp");
        }

六、转发以及传递参数

		//转发以及带参数转发
        if(req.getParameter("name")!=""){
            String name = req.getParameter("name");
            //参数1随意,参数2为数据名
            req.setAttribute("userName",name);
            //转发的是请求
            req.getRequestDispatcher("success.jsp").forward(req,resp);
        }else {
            req.getRequestDispatcher("fail.jsp").forward(req,resp);
        }

七、获取页面复选框的值

 		//获取复选框的值
        String[] date = req.getParameterValues("hobbys");
        if(date!=null&&date.length>0){
            for (String hobby:date) {
                System.out.println(hobby);
            }
        }

八、把服务器的集合数据传递到前台

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置集合并存储数据
        List<Student> list = new ArrayList<>();
        list.add(new Student("Tom","man",18));
        list.add(new Student("LiLi","woman",19));
        //传递数据到其他界面
        req.setAttribute("listStudent",list);
        req.getRequestDispatcher("index2.jsp").forward(req,resp);
    }

九、连接数据库参数(MySQL)

public interface FileUtlis {
    public String DRIVER = "com.mysql.jdbc.Driver";
    public String URL = "jdbc:mysql://localhost:3306/mydb";
    public String USER = "root";
    public String PASSWORD = "123456";
}

十、连接数据库方法

 	/* 连接数据库 */
    public static Connection getConnection(){
        Connection connection = null;
        try {
            Class.forName(FileUtlis.DRIVER);
            connection = DriverManager.getConnection(FileUtlis.URL,FileUtlis.USER,FileUtlis.PASSWORD);
        } catch (ClassNotFoundException | SQLException e) {
            System.out.println("数据库加载驱动或连接参数错误"+e.getMessage());
        }
        return connection;
    }

十一、关闭数据库连接

	/* 关闭数据库连接 */
    public static void releaseall(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet){
        if(resultSet!=null){
            try {
                resultSet.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(preparedStatement!=null){
            try {
                preparedStatement.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(connection!=null){
            try {
                connection.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

十二、数据库增加、删除、修改的方法

	/*数据库删除,修改,插入的方法*/
    public boolean modifyDate(String sql,Object...objects){
        /*首先获取数据库连接*/
        Connection connection = ConnectionUtils.getConnection();
        /*定义影响行*/
        int result = 0;
        /*解析SQL语句*/
        try {
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            for (int i=0;i<objects.length;i++){
                /*循环加载参数构建语句*/
                preparedStatement.setObject(i+1,objects[i]);
            }
            /*更新影响行数*/
            result = preparedStatement.executeUpdate();
        } catch (SQLException e) {
            System.out.println("数据库语句解析错误"+e.getMessage());
        }
        /*影响行数大于0时则返回true*/
        return result>0?true:false;
    }

十三、在JSP页面中循环生成表格

<table>
    <tr>
        <td>学号</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>性别</td>

    </tr>

        <%for(Student student:list){%>
    <tr>
        <td><%=student.getSno()%></td>
        <td><%=student.getSname()%></td>
        <td><%=student.getSage()%></td>
        <td><%=student.getSex()%></td>
    </tr>
        <%}%>

</table>

十四、创建业务接口

/*创建接口业务层*/
public interface Service {
    public List<Student> findAll();
}

十五、实现业务

/*实现业务层*/
public class ServiceImplemet implements Service {
    SeekDao seekDao = new SeekDao();
    @Override
    public List<Student> findAll() {
       /*创建方法需要的SQL语句*/
       String sql = "select id,name,age,sex from student";
       /*返回查询到的数据集合*/
       return seekDao.seekDao(sql);
    }
}

十六、数据库查询方法

public class SeekDao {
    /*查询的结果返回实体对象的结果集*/
    public List<Student> seekDao(String sql, Object...objects){
        /*获取连接*/
        Connection connection = ConnectionUtils.getConnection();
        /*初始化解析属性*/
        PreparedStatement preparedStatement = null;
        /*初始化结果集属性*/
        ResultSet resultSet = null;
        /*创捷集合*/
        List<Student> list = new ArrayList<>();
        try {
            preparedStatement = connection.prepareStatement(sql);
            for(int i=0;i<objects.length;i++){
                preparedStatement.setObject(i+1,objects[i]);
            }
            /*输出结果集*/
            resultSet = preparedStatement.executeQuery();
            /*循环遍历结果集*/
            while (resultSet.next()){
                /*创建对象,以便将对象存入集合*/
                Student student = new Student();
                /*将输入存入对象之中*/
                student.setSno(resultSet.getInt(1));
                student.setSname(resultSet.getString(2));
                student.setSage(resultSet.getInt(3));
                student.setSex(resultSet.getString(4));
                /*将对象存入集合之中*/
                list.add(student);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return list;
    }
}

十六、request的作用域

1.request可以多次传递,并且值不发生改变,

2.当请求改变时,request中的值将发生改变

十七、服务器端的增删改查

1.可以通过隐藏域的方式传递标识用于分辨不同的操作

2.Get和Post的方法可以相互调用,查询方法最好写到Post中

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    /*获取标识位进行方法判断*/
    String main = req.getParameter("main");
    System.out.println(main);
    if("delete".equals(main)){
        doDelete(req,resp);
    }else if("insert".equals(main)){
        doInsert(req,resp);

    }else if("update".equals(main)){
        doUpdate(req,resp);
    }
    //直接返回,数据页面
    doPost(req,resp);

}

/*分离删除方法*/
@Override
protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //获取URL中的参数值
    String id = req.getParameter("id");
    ServiceImplemet serviceImplemet = new ServiceImplemet();
    boolean flag = serviceImplemet.delete(Integer.parseInt(id));
}
/*分离插入方法*/
protected void doInsert(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
    /*插入数据*/
    System.out.println("insert");
    String sname = req.getParameter("name");
    String sex = req.getParameter("sex");
    int sage = Integer.parseInt(req.getParameter("age"));
    ServiceImplemet serviceImplemet = new ServiceImplemet();
    Student student = new Student(sname,sex,sage);
    boolean flag = serviceImplemet.insert(student);
}
/*分离修改方法*/
protected void doUpdate(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
    /*修改数据*/
    int id = Integer.parseInt(req.getParameter("id"));
    String sname = req.getParameter("name");
    String sex = req.getParameter("sex");
    int sage = Integer.parseInt(req.getParameter("age"));
    ServiceImplemet serviceImplemet = new ServiceImplemet();
    Student student = new Student(id,sname,sex,sage);
    boolean flag = serviceImplemet.update(student);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    /*获取数据*/
    ServiceImplemet serviceImplemet = new ServiceImplemet();
    List<Student> students = serviceImplemet.findAll();
    /*传递数据*/
    req.setAttribute("StudentList",students);
    /*携带数据跳转页面*/
    req.getRequestDispatcher("index2.jsp").forward(req,resp);
}
void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    /*获取数据*/
    ServiceImplemet serviceImplemet = new ServiceImplemet();
    List<Student> students = serviceImplemet.findAll();
    /*传递数据*/
    req.setAttribute("StudentList",students);
    /*携带数据跳转页面*/
    req.getRequestDispatcher("index2.jsp").forward(req,resp);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值