nutz初使用之MVC HelloWorld (netbeans jsp版)

2.3. nutz初使用之MVC HelloWorld (netbeans jsp版)
说明:
(1) 这是nutz与jsp进行相互通讯
    (2) netbeans 6.9.1版开发,nutz 1.a.31,
    (3) 功能:打开newjsp.jsp,输入姓名、年龄,按提交,nutz收到newjsp.jsp发出的信息, 增加点信息,结果用json形式返回给newjsp.jsp。newjsp.jsp显示返回值。其中:A 在服务器处理过程中,用request设了新的值,而newjsp.jsp也通过request进行显示;B newjsp.jsp在处理服务器返回结果时,通过js对json形式的返回结果进行了解析。

2.3.1. 步骤1 从官方下载Nutz,并导入新建工程中
方法:选中Libraries,按右键,选ADD JAR/Fold,选中解压后的nutz
2.3.2. 步骤2 配置WEB.xml
下面是完整代码:新增的仅含有filter
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>

    <filter>
		<filter-name>nutz</filter-name>
		<filter-class>org.nutz.mvc.NutFilter</filter-class>
		<init-param>
			<param-name>modules</param-name>
			<param-value>MainModule</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>nutz</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>


2.3.3. 步骤3 建jsp文件,这里文件名为:newjsp.jsp
代码说明:
(1) 用了js对json形式的返回结果进行了解板析。
(2) newjsp.jsp位于工程WEB Page下,即网站的页面的根目录下。
完整代码:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
        <script type="text/javascript"></script>
    </head>
    <body>      
      <form id="formtest" action="yousay" method="post">
        <p><span>输入姓名:</span><input type="text" name="username" id="username" /></p>
        <p><span>输入年龄:</span><input type="text" name="age" id="age" /> </p>
        <input   type=submit   value= "test ">
      </form>
      <br /><br />
      <div>服务器用request设定的值:</div>
      <div>姓名_年龄-----<%=request.getAttribute("username_age")%></div>
      <br />
      <div>服务器返回结果:</div>
      <div id="result_sv"><%=request.getAttribute("obj")%></div>
      <br />
      <div>对服务器的json形式的返回结果,用js进行解析:</div>
      <div id="result"></div>
      <script type="text/javascript">
        var rs=document.getElementById("result_sv").innerHTML;
        if (rs){
            eval("json=" + rs + ";");
            var str="姓名:"+json.username+"<br />";
            str+="年龄:"+json.age+"<br />";
            str+="追加测试:"+json.append;
            document.getElementById("result").innerHTML=str;
        }
      </script>
    </body>
</html>


2.3.4. 建立MainModule.java
说明:
(5) @ Modules ----指明了子模块为HelloWorld,可以有多个用逗号分开
(6) @Fail("json") ---指明了失败格式为json
完整源代码:
import org.nutz.mvc.adaptor.PairAdaptor;
import org.nutz.mvc.annotation.*;
import org.nutz.mvc.ioc.provider.JsonIocProvider;

 @Modules({HelloWorld.class}) @Fail("json")
public class MainModule {}


2.3.5. 建立HelloWorld.java
说明:
(7) 该类必须在MainModule注释中出现,否则不起作用
(8) @Ok("jsp:/newjsp")----指明入口函数返回到new.jsp页面中
(9) @At("/yousay")----指明随后的函数 负责响应网页或用户发出的请求。请求格式为:基网址/yousay。例:http://localhost:8084/HelloNutz1/yousay
完整源代码:
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.nutz.lang.Strings;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;

// @Ok("json")
public class HelloWorld {

         @At("/yousay")
         @Ok("jsp:/newjsp")//返回形式是jsp
        public String tellMore( HttpServletRequest request,
                    ServletContext context,
                    @Param("username") String username,
                    @Param("age") String age,
                    HttpSession session) {

            request.setAttribute("username_age", username+"_"+age);

            String str="{'username':'" + username +"','age':'"+age+"','append':'nuzamAppend'}";
                 return str;
        }
}


下图是运行结果界面:

nutz初使用之MVC HelloWorld (netbeans jsp版)

你可能感兴趣的:(mvc,json,jsp,servlet,Netbeans)