第九次-servelt基本应用

以前用浏览器可以直接访问一个人html文件,直接在dw中打开就可以,浏览器显示地址,但这只是前端。但在后端的java类/方法中能不能直接被浏览器调用呢。这是这节课老师提出的第一个思考问题。答案是可以的,需要借助tomcat服务器加上servelt技术。这就是本节课学习的servelt基本应用的第一个也是最重要的基本应用。

本节课还进行做登录功能,表单:类似我们填的纸质的表一样,在html页面开发时用<form></form>标签来表示。Form标签里面放置具体的项。如果要用下拉列表选择,就用<select></select>标签。

还要将用户名、密码和数据库表中的数据匹配。首先是导入数据库驱动jar包、注册数据库驱动程序、创建数据库链接,其次是执行查询或更新、从结果集中提取数据最后是关闭连接。

这节课最重要的就是第二部分做一个登陆,代码如下。

package com.zq.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//注解:代替一些配置文件的配置 @WebServlet给前台jsp提供一个访问地址
//http://localhost:8088/MyWeb/user
@WebServlet("/user")
public class UserServlet extends HttpServlet {
    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        //业务逻辑代码
        System.out.println("进来了");
        //1、获取从前台或从浏览器地址传进来的参数
        //HttpServletRequest 里面存有前台传来的参数;可以往前台页面上传数据;执行页面的跳转serlvet类里面跳到某个页面
        //HttpServletResponse 主要有个作用可以直接返回数据,不需要跟着页面传输数据
        String action = req.getParameter("action");
        
        //null.equals
        //http://localhost:8088/MyWeb/user?action=toLogin&username=zq&pwd=123
        if(null!=action && action.equals("toLogin")){//从系统上的注销操作,跳转到登陆页面
            //跳到页面时,想传递一个数据;第一个参数放传递数据变了的名字,第二个参数传递的数据的值
            req.setAttribute("msg", "今天天气真好啊");
            //也可以传任何对象Object
            Map<String,String> map =new HashMap<String,String>();
            map.put("name", "zq");
            map.put("age", "22");
            req.setAttribute("map", map);
            //requst跳转到某个页面代码
            req.getRequestDispatcher("index.jsp").forward(req, resp);
        }else if(action.equals("delete")){
            //页面保持不动的情况,向后台发一请求,ajax请求,局部刷新,页面不动;
            //如果是<a>超链接的跳转,都是直接整个页面都刷新、跳转了,那种不是ajax请求
            //ajax请求返回前台的只是一个数据结果,不需要跳转页面
            resp.setContentType("text/html;charset=utf-8");//设置页面显示的数据是中文编码方式,不然会乱码
            PrintWriter out = resp.getWriter();
            out.print("删除成功");
            out.flush();
            out.close();
        }else if(action.equals("login")){//如果是登陆操作
            String username = req.getParameter("username");
            String pwd = req.getParameter("pwd");
            
            if(username.equals("admin") && pwd.equals("123")){
                System.out.println("跳转一个系统首页面");
            }else{
                //跳回到登陆页面,并且告诉登录那个人,你用户名或密码输错了
                req.setAttribute("msg", "您的用户名或密码输入错误");
                req.getRequestDispatcher("index.jsp").forward(req, resp);
            }            
        }
        
    }
    
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        System.out.println("调用doPost了");
        doGet(req, resp);
    }
}
 

转载于:https://my.oschina.net/u/4091363/blog/3060033

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值