猿问

如何从 JSP 中删除硬编码值并在一行代码中实现重定向?

我正在尝试从 JSP 文件中删除硬编码名称。我需要在 Config 文件中给出名称并在 jsp 中调用,这样当用户确实查看页面源时,他不应该看到这些名称。我怎样才能在 JSP 中做到这一点。


我的代码:


 if (((tech == 'google.com') && ((id == 'email') || id == 'domain'))) || ((tech == 'google') && id == 'test')))

        window.location = (url.substring(0, res + 5) + ("google/") + url.substring(res + 5, url.length));

现在如何删除硬编码的值并在配置文件中给出它并在此处调用它,以便当我查看页面源时我不应该看到 google.com 名称


我的新代码尝试:


 Config.properties

 envs=google.com,yahho.com

 name= google,yahoo

 tokenurl=google/,yahoo/


 sample.jsp


 <%@ page import = "java.util.ResourceBundle" %>


 <% ResourceBundle resource = ResourceBundle.getBundle("config");

 String names=resource.getString("name");

 String env=resource.getString("envs");

 String turls=resource.getString("tokenurl");

 %>


 if (((tech == env[0]) && ((id == 'email') || id == 'domain'))) || ((tech 

 == 'names[0]') && id == 'test')))

 window.location = (url.substring(0, res + 5) + ("turls[0]") + 

 url.substring(res + 5, url.length));

 else if (((tech == env[1]) && ((id == 'email') || id == 'domain'))) || 

 ((tech == 'names[1]') && id == 'test')))

    window.location = (url.substring(0, res + 5) + ("turls[1]") + 

  url.substring(res + 5, url.length));

但我不确定这是编写代码的正确方法。谁能建议我可以遵循的适当标准方法来仅在一条 if 条件下实现?


开心每一天1111
浏览 93回答 2
2回答

慕少森

在包中创建一个扩展名为“.properties”的属性文件,并通过在 jsp 中导入资源包包来使用在 jsp 文件中定义的那些属性。config.propertiesname=priyaemail=priya@gmail.comphone=22222示例.jsp<%@ page import = "java.util.ResourceBundle" %>&nbsp;<% ResourceBundle resource = ResourceBundle.getBundle("config");&nbsp; &nbsp; String name=resource.getString("name");&nbsp; &nbsp; String email=resource.getString("email");&nbsp; &nbsp; String phone=resource.getString("phone");&nbsp; &nbsp; &nbsp;%>&nbsp; &nbsp; Name:&nbsp; <input type="text" id="name" value="<%=name %>">&nbsp; &nbsp; Email: <input type="text" id="email" value="<%=email %>">&nbsp; &nbsp; Phone: <input type="text" id="phone" value="<%=phone %>">

SMILET

一个经典的 JSP。在这里我使用%><%所以仍然没有输出被写入,并且可以重定向到另一个页面。HTTP 首先发送一些标题行,一个空行,然后是可选的 HTML 内容。进行重定向将是标题行。所以仍然没有内容必须由 JSP 编写。标题行可以说明使用的字符集/编码、cookie 等。所以:<%@ page import = "java.util.ResourceBundle"%><%&nbsp; &nbsp;ResourceBundle resource = ResourceBundle.getBundle("config");&nbsp; &nbsp;String names = resource.getString("name");&nbsp; &nbsp;String[] env = resource.getString("envs").split(",\\s*");&nbsp; &nbsp;String turls = resource.getString("tokenurl");&nbsp; &nbsp;String tech = request.getParameter("tech");&nbsp; &nbsp;if (tech != null && tech.equals("google")) {&nbsp; &nbsp; &nbsp; &nbsp;String url = response.encodeRedirectURL(env[13]);&nbsp; &nbsp; &nbsp; &nbsp;response.sendRedirect(url); // Just tell the browser to redirect, load the url.&nbsp; &nbsp; &nbsp; &nbsp;return;&nbsp; &nbsp;}%>不幸的是,实际的逻辑是你的事。与 JavaScript 相比,s == 'abc'有s.equals("abc").学习和使用 JSP 标记和 EL(表达式语言)将使代码更小。使用 servlet 作为控制器,准备数据,然后作为视图转发到任何 JSP ,使用数据参数化(或重定向到某些外部 URL),模型会更好。
随时随地看视频慕课网APP

相关分类

Java
我要回答