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

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

下面这段代买是写在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>

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

原文地址:https://www.cnblogs.com/yuanshenjie/p/7102750.html