微信小程序> jsp路线

jsp路线

浏览量:3425 时间: 来源:海绵娃娃

    • Servlet
      • 创建servlet
      • 验证码小程序
    • ServletContext
      • ServletContex设置属性
      • ServletContext获取属性和其他参数
      • ServletContext统计网页访问次数
    • Session
      • Session统计网页访问
    • JSP基本语法
    • Cookie登录界面自动输入用户名
    • JSP和数据库的整合
    • Java bean
    • 总结


Servlet

1. 创建servlet

public class MyServletA implements Servlet    public void init(ServletConfig config) throws ServletException    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException       public void destroy()    public ServletConfig getServletConfig()    public String getServletInfo()
public class MyServletB extends GenericServlet    @Override    public void init(ServletConfig config) throws ServletException    @Override    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException    @Override    public void destroy()
public class MyServletC extends HttpServlet    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException    1.System.out.println后台    2.PrintWriter out--->out.println()页面    3.request中的方法拿到主机名字之类的    4.request设置属性传参数---->对象,一般需要向下转型    5.跳转,重定向

验证码小程序

public class HttpServletDemo extends HttpServlet {    public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doPost(request, response);    }    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        //产生随机数对象        Random rd=new Random();        String str="0123456789abcdefghijklmvopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";        int width=60;        int height=70;        //获取一张图片        BufferedImage bi=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);        //获取一个画布        Graphics gh=bi.getGraphics();        //设置颜色        gh.setColor(Color.black);        //画一个矩形        gh.fillRect(0,0, width, height);        //设置颜色        gh.setColor(Color.white);        gh.fillRect(1, 1, width-2, height-2);        //设置颜色        gh.setColor(Color.blue);        gh.setFont(new Font("宋体", Font.BOLD, 20));        //随机产生4个        for(int  i=0;i<4;i++){            int a=rd.nextInt(31*2);            gh.setColor(new Color(rd.nextInt(256), rd.nextInt(256), rd.nextInt(256)));            String s=str.substring(a, a+1);            gh.drawString(s, 14*i, 20);        }        //写字        //gh.drawString("你好", 14, 20);        //干扰线        for(int b=1;b<=20;b++){            gh.setColor(new Color(rd.nextInt(256), rd.nextInt(256), rd.nextInt(256)));            gh.drawLine(rd.nextInt(width), rd.nextInt(height), rd.nextInt(width), rd.nextInt(height));        }        //刷新        bi.flush();        //设置图片类型        response.setContentType("image/jpg");        //把图片写出        ImageIO.write(bi, "jpg", response.getOutputStream());    }}

ServletContext

ServletContex设置属性

ServletContext context=this.getServletContext();context.setAttribute("AAA", "张三");System.out.println(context.getAttribute("AAA"));

ServletContext获取属性和其他参数

ServletContext con=this.getServletContext();Object obj=con.getAttribute("AAA");System.out.println("obj="+obj);//获取公共参数String c=con.getInitParameter("context-name");System.out.println(c);//获取路径String p=con.getRealPath("/index.jsp");System.out.println(p);//建立流对象InputStream input=con.getResourceAsStream("/index.jsp");System.out.println(input);Set<String> set=con.getResourcePaths("/WEB-INF");System.out.println(set);

ServletContext统计网页访问次数

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {    request.setCharacterEncoding("utf-8");    response.setCharacterEncoding("utf-8");    PrintWriter pw=response.getWriter();    //获取ServletContext    ServletContext con=this.getServletContext();    //获取参数    Integer ir=(Integer)con.getAttribute("cout");    //判断ir是否为null    if(ir==null){        //说明是第一次访问        con.setAttribute("cout", 1);    }else{//就说明已经出现过了        con.setAttribute("cout", ir.intValue()+1);    }    Object ot=con.getAttribute("cout");    pw.println("你是第"+ot+"次访问页面");    pw.flush();    pw.close();}

Session

Session统计网页访问

public void doPost(HttpServletRequest request, HttpServletResponse response)        throws ServletException, IOException {    request.setCharacterEncoding("utf-8");    response.setCharacterEncoding("utf-8");    PrintWriter pw=response.getWriter();    //获取servletContext    ServletContext context=this.getServletContext();    //获取session对象    HttpSession session=request.getSession();    //获取属性    Integer ir=(Integer)context.getAttribute("count");    if(ir==null){        context.setAttribute("count", 1);    }else{        //判断是否是新的会话        if(session.isNew()){            context.setAttribute("count", ir.intValue()+1);        }    }    Object obj=context.getAttribute("count");    pw.println("你是第"+obj+"次访问页面");    pw.flush();    pw.close();}

JSP基本语法

注释
变量
循环打印九九乘法表
动态包含
静态包含

Cookie登录界面自动输入用户名

public void doPost(HttpServletRequest request, HttpServletResponse response)        throws ServletException, IOException {    //处理乱码问题    request.setCharacterEncoding("utf-8");    response.setCharacterEncoding("utf-8");    //获取用户名    String userName=request.getParameter("userName");    //判断用户名    if(userName.contains("lingyao")){//登录成功        /**         * 建立Cookie对象 把用户名设置为属性值         */        Cookie cook=new Cookie("uName", userName);        cook.setPath("/");        cook.setMaxAge(60*60*24);//一天        response.addCookie(cook);        //获取session        HttpSession session=request.getSession();        //把用户名保存到session中        session.setAttribute("userName", userName);        response.sendRedirect("/day20_2/session1/success.jsp");    }else{//登录失败        //设置request属性        request.setAttribute("msg", "用户名错误");        request.getRequestDispatcher("/session1/Login.jsp").forward(request, response);    }

JSP和数据库的整合

  1. 根据数据库判断用户登录是否成功
  2. 根据查询数据库显示到用户的查询界面当中
    类似下面的代码
    <%        List<User> list=(ArrayList<User>)request.getAttribute("list");     %>     <table border="1" align="center" width="40%">            <%                 //遍历list集合                for(User user:list){%>                    <tr>                        <td><%=user.getUserName() %></td>                        <td><%=user.getPassword() %></td>                    </tr>            <%}%>     </table>

Java bean

<%    //实例化对象    User user=new User();    //setter方法进行设置    user.setUserName("jack");    user.setAge(20);    user.setSex("男");    user.setMairred(false);%><%--调用getter获取属性 --%><%=user.getUserName() %><%=user.getAge() %><%=user.getSex() %><%=user.isMairred() %><hr/><%--- 相当于实例化对象 user2     User user=new User();--%><jsp:useBean id="user2" class="cn.cm.lingyao.User.User"></jsp:useBean><%-- 设置属性 相当于调用setter方法 --%><jsp:setProperty property="userName" name="user2" value="rows"/><jsp:setProperty property="age" name="user2" value="21"/><jsp:setProperty property="sex" name="user2" value="女"/><jsp:setProperty property="mairred" name="user2" value="false"/><%-- 获取属性 相当于调用getter方法 --%><jsp:getProperty property="userName" name="user2"/><jsp:getProperty property="age" name="user2"/><jsp:getProperty property="sex" name="user2"/><jsp:getProperty property="mairred" name="user2"/>

总结

  1. 用Servlet处理用户请求,Servlet当中用PrintWriter打印太多的html代码
    嫌弃Java代码当中包含太多html代码!!

  2. 用Servlet和JSP处理用户请求。把JSP页面是html包含java代码
    嫌弃html代码中包含太多java代码,用javabean减少一下java代码?

  3. 用Servlet和JSP和JavaBean处理。这就是MVC。
    感觉JavaBean在减少java代码方面表现不佳呀!

网络项目:数据,业务,表现。
数据—>模型—>Moudle–>M—>JavaBean
表现—>视图—->View—->V—->JSP
业务—>控制—>Controller—>C—>Servlet

MVC开发步骤就是按照M—>V—>C去开发的。

思考:

第一,JavaBean和Servlet的分工
1.JavaBean主要是在JSP页面当中直接对类的实例进行操作,减少操作数据库。
2.Servlet处理表单提交,进行数据库操作。

第二,Servlet在JSP页面的绑定方式
1.一个jsp页面和servlet的绑定,form当中的action属性。
2.JSP页面进行页面跳转,直接到Servlet

第三,JSP页面的跳转方式
1.按钮跳转: window.location.href实现
2.servlet当中的转发和重定向

第四,JSP和CSS的整合,JSP和JS的分工整合

小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎