为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开心每一天1111 2022-07-20 19:25:38
我正在尝试从 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 条件下实现?
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

在包中创建一个扩展名为“.properties”的属性文件,并通过在 jsp 中导入资源包包来使用在 jsp 文件中定义的那些属性。


config.properties


name=priya

email=priya@gmail.com

phone=22222

示例.jsp


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


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

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

    String email=resource.getString("email");

    String phone=resource.getString("phone");

     %>


    Name:  <input type="text" id="name" value="<%=name %>">

    Email: <input type="text" id="email" value="<%=email %>">

    Phone: <input type="text" id="phone" value="<%=phone %>">


查看完整回答
反对 回复 2022-07-20
?
SMILET

TA贡献1796条经验 获得超4个赞

一个经典的 JSP。在这里我使用%><%所以仍然没有输出被写入,并且可以重定向到另一个页面。


HTTP 首先发送一些标题行,一个空行,然后是可选的 HTML 内容。进行重定向将是标题行。所以仍然没有内容必须由 JSP 编写。标题行可以说明使用的字符集/编码、cookie 等。

所以:


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

%><%

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

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

   String[] env = resource.getString("envs").split(",\\s*");

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


   String tech = request.getParameter("tech");

   if (tech != null && tech.equals("google")) {

       String url = response.encodeRedirectURL(env[13]);

       response.sendRedirect(url); // Just tell the browser to redirect, load the url.

       return;

   }

%>

不幸的是,实际的逻辑是你的事。与 JavaScript 相比,s == 'abc'有s.equals("abc").


学习和使用 JSP 标记和 EL(表达式语言)将使代码更小。


使用 servlet 作为控制器,准备数据,然后作为视图转发到任何 JSP ,使用数据参数化(或重定向到某些外部 URL),模型会更好。


查看完整回答
反对 回复 2022-07-20
  • 2 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信