• 软件工程综合实践随笔(二)


    软件工程短学期实践前五天的学习就结束了,学习了好多我们未曾涉及过的知识,但是由于时间紧任务重,所以其实理解起来还是有很大难度的。

    下面这段代买是写在jspservlet_1下的LGinAction

    public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException {

      response.setContentType("text/html");
      response.setCharacterEncoding("utf-8");
      request.setCharacterEncoding("utf-8");
      
      //获取页面中输入的信息
      String username = request.getParameter("username");
      String pwd = request.getParameter("pwd");
      System.out.println("获取的用户名"+username);
      System.out.println("获取的密码"+pwd);
      //乱码转换   可以ISO-8859-1转成utf-8  还可以别的样式转换
      username = new String (username.getBytes("ISO-8859-1"),"utf-8");
      System.out.println("转码之后的用户名:"+username);
      UserinfoBiz biz = new UserinfoBizImpl();
      String msg = biz.UserLogin(username, pwd);
      
      //根据返回的结果,进行页面跳转
      if (msg.equals("ok")){
       request.setAttribute("uname", username);
       request.getRequestDispatcher("WEB-INF/jsp/success.jsp").forward(request, response);
      }else if(msg.equals("unameErr")){
       request.setAttribute("unameErr", "用户名错误");
       request.getRequestDispatcher("login.jsp").forward(request, response);
      }else if(msg.equals("pwdErr")){
       request.setAttribute("pwdErr", "密码错误");
       request.getRequestDispatcher("login.jsp").forward(request, response);
      }

    其中具体的使用解释如下:

    1.      通过String username = request.getParameter("username");可以获取页面当中输入的用户名;

    2.      有可能获取到乱码,那可以通过username = new String (username.getBytes("ISO-8859-1"),"utf-8");转码,(如果获取的信息不是乱码,那就不要转码了,否则会转换成乱码);

    3.      判断一下是否能登陆(获取的用户名和密码是否都匹配):if("neusoft".equals(username)&&"123".equals(pwd));

    4.      WEB-INF下的jsp页面不能直接跳转,需要通request.getRequestDispatcher("WEB-INF/jsp/success.jsp").forward(request, response);转发,才能够跳转;

    5.       request.getRequestDispatcher 可以携带  request.setAttribute的信息;

    6.       Request转发之后的页面,可以通过el表达式获取setAttribute的信息${uname }     注意  uname  是  request.setAttribute("uname", username);这个方法中的uname;

    7.      Response 是  重定向,不能携带数据;

    8.      Session里面的数据  response 和  request 都能传递;

    30号则讲了springmvc,下面是springmvc 前端控制器配置的代码

    <!-- springmvc 前端控制器配置 -->
      <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- springmvc.xml  具体进行配置,这里我们只是读取配置文件 -->
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value>
        </init-param>
      </servlet>
      <servlet-mapping>
      <!-- 第一种:*.action    只有访问到springmvc/login.action 有.action才触发
                 第二种:/  符合现在网页的URL  样式  restful风格
                  第三种:/*   最好不要使用  最终处理完需要跳到一个jsp  代表所有的内容都会经过 DispatcherServlet  再解析jsp  会报错·· -->     
       <servlet-name>springmvc</servlet-name>
       <url-pattern>*.action</url-pattern>
      </servlet-mapping>

    下面是配置Controller,处理器,适配器的代码

        <!-- 配置Controller -->
        <bean id="UsersController1" name="/users.action" class="cn.neusoft.controller.UsersController1"></bean>
       
        <!-- 项目中一般使用 扫描包的方式进行配置 -->
        <context:component-scan base-package="cn.neusoft.controller"></context:component-scan>
       
        <!-- 实际开发中使用  加载注解的  适配器  映射器  JSon转换器 -->
        <mvc:annotation-driven></mvc:annotation-driven>
       
        <!-- 非注解的  映射器  以及  适配器 -->
        <!-- 配置处理器映射器 -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
        
     <!-- 配置处理器适配器 -->
     <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
     <!-- 另一个适配器 -->
     <bean class ="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>
     <!-- 配置视图解析器 -->
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!-- 配置jsp页面的前缀 -->
            <property name="prefix" value="WEB-INF/jsp"></property>
            <!-- 配置后缀 -->
            <property name="suffix" value=".jsp"></property>
     </bean>

    短短的五天学习了好多知识,接下来还要应用到自己做的项目当中,其实是有很大的难度的,希望接下来可以做出自己满意的项目。

  • 相关阅读:
    Appium学习笔记||十一、Appium按键操作
    Appium学习笔记||九、操作不可见元素
    Appium学习笔记||八、滑动页面
    Appium学习笔记||七、用UIAutomator API定位
    Appium学习笔记||六、根据Xpath寻找元素
    Appium学习笔记||五、Tap方法
    enumerate 函数
    python 复制 浅copy 深copy 的区别
    听歌都能听出来代码...
    for 循环时候 pop现象
  • 原文地址:https://www.cnblogs.com/yuanshenjie/p/7102750.html
Copyright © 2020-2023  润新知