我正在设计一个简单的基于Web的应用程序.我是这个基于Web的域的新手.我需要您对设计模式的建议,例如如何在Servlet中分配责任,制作新Servlet的标准等.
实际上,我的主页上有很少的实体,并且每个实体都对应于我们添加,编辑和删除等几个选项.之前我每个选项使用一个Servlet,比如Servlet1,用于添加entity1,Servlet2用于编辑entity1等等,这样我们最终得到了大量的servlet.
现在我们正在改变我们的设计.我的问题是你如何选择如何选择servlet的责任.我们是否应该为每个实体安装一个Servlet,它将处理所有选项并将请求转发给服务层.或者我们应该为整个页面都有一个servlet来处理整个页面请求,然后将其转发到相应的服务层?此外,请求对象是否应转发到服务层.
我已经开发了一个将信息发送到Servlet的HTML页面.在Servlet中,我使用的方法doGet()和doPost():
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String id = req.getParameter("realname");
String password = req.getParameter("mypassword");
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String id = req.getParameter("realname");
String password = req.getParameter("mypassword");
}
Run Code Online (Sandbox Code Playgroud)
在调用Servlet的html页面代码中:
<form action="identification" method="post" enctype="multipart/form-data">
User Name: <input type="text" name="realname">
Password: <input type="password" name="mypassword">
<input type="submit" value="Identification">
</form>
Run Code Online (Sandbox Code Playgroud)
当我method = "get"在Servlet中使用时,我获得了id和password的值,但是在使用时method = "post",id和password被设置为null.为什么我不能在这种情况下获得值?
我想知道的另一件事是如何使用Servlet生成或验证的数据.例如,如果上面显示的Servlet对用户进行身份验证,我想在HTML页面中打印用户ID.我应该能够将字符串'id'作为响应发送,并在我的HTML页面中使用此信息.可能吗?
要使用我的静态文件(CSS,JS),我必须编写绝对路径/AppName/templates/style/main.css.有什么解决方案,我可以写相对路径style/main.css吗?
我将Spring MVC调度程序映射为全局前端控制器servlet /*.
<servlet>
<servlet-name>home</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>home</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
但是,此映射会停止访问CSS,JS,图像等静态文件,这些/res/文件都在文件夹中.
我怎么能访问它们?
有没有办法instanceof在EL 进行检查?
例如
<h:link rendered="#{model instanceof ClassA}">
#{errorMessage1}
</h:link>
<h:link rendered="#{model instanceof ClassB}">
#{errorMessage2}
</h:link>
Run Code Online (Sandbox Code Playgroud) 考虑下面的JSP:
<param name="FlashVars" value="${flashVars}" />
Run Code Online (Sandbox Code Playgroud)
${flashVars}包含&符号的值需要在输出之前进行编码.相反,JSP期望值为${flashVars}HTML的一部分,并逐字输出&符号,导致HTML错误.
我发现如果我像这样编写它,我可以得到要编码的值:
<param name="FlashVars" value="<c:out value="${flashVars}"/>" />
Run Code Online (Sandbox Code Playgroud)
但这看起来很丑陋,让我的IDE混乱.有没有更好的方法来获得相同的结果?
如果我有一个等于url的字符串"output":
${output} = "/testing/method/thing.do?foo=testing&bar=foo"
Run Code Online (Sandbox Code Playgroud)
在jsp中,我如何将该字符串转换为:
%2Ftesting%2Fmethod%2Fthing.do%3Ffoo%3Dtesting%26bar%3Dfoo
Run Code Online (Sandbox Code Playgroud)
运用
<c:out value="${output}"/>
Run Code Online (Sandbox Code Playgroud)
?我需要以某种方式在c:out中使用URLEncoder.encode(url).
我让我的Servlet响应所有"/"url-pattern.在内部我需要有时渲染html,所以我想.包含一个JSP页面,但我希望.jsp在外部是不可访问的.另外,我如何将模型对象传递给它.
我正在尝试使用表达式语言检查JSP页面上是否存在cookie.
我有一个cookie persist被设置为空字符串或"已检查".
如果想检查persistcookie是否存在.
我尝试过以下方法:
<c:if test="${cookie.persist == null}">
<c:if test="${empty cookie.persist}">
以上两个语句都是true当persistcookie的值为空字符串时,而当cookie的值为false时为false checked.
如何区分具有空字符串的cookie作为其值,以及不存在的cookie.
(注意:我可以通过为cookie而不是空字符串分配非空值来轻松解决此问题.)
java ×7
jsp ×7
servlets ×6
el ×4
resources ×2
contextpath ×1
html-encode ×1
instanceof ×1
jsf ×1
jstl ×1