软件工程短学期实践前五天的学习就结束了,学习了好多我们未曾涉及过的知识,但是由于时间紧任务重,所以其实理解起来还是有很大难度的。
下面这段代买是写在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>
短短的五天学习了好多知识,接下来还要应用到自己做的项目当中,其实是有很大的难度的,希望接下来可以做出自己满意的项目。