如何使用 Jersey for java 在浏览器中呈现新的 .jsp 文件?

2024-03-23

我的网站进入一个登录页面,当用户登录时我想重定向到另一个页面。我有一个“POST”方法,将“用户名”和“密码”发送到服务器,服务器检查用户名和密码是否正确存在。

这是我的方法

@POST
@Path("logIn")
public void signIn(@PathParam("profileName") String profileName, @PathParam("password") String password) {
    if (profileService.getProfile(profileName) != null && (profileService.getPassword(profileName)).equals(password)){
        //Render a new page ex "feed.jsp"
    }
    else {
          //send unsucessful message back to client?? 

}

客户端能够正确发布用户名和密码并检查它是否存在...我只是不知道如何使其呈现(重定向到???)新页面


你可以...

重定向,(使用Response.seeOther(URI) http://docs.oracle.com/javaee/7/api/javax/ws/rs/core/Response.html#seeOther-java.net.URI-,将任何需要的值作为查询参数传递。例如

@POST
@Path("logIn")
public Response login(@Context ServletContext context) {
    UriBuilder uriBuilder = UriBuilder.fromUri(URI.create(context.getContextPath()));
    uriBuilder.path(.. <path-to-your-jsp> ..);
    uriBuilder.queryParam("key1", "value1");
    uriBuilder.queryParam("key1", "value2");
    URI uri = uriBuilder.build();

    return Response.seeOther(uri).build();
}

注意:请参阅对此选项的更正这个答案 https://stackoverflow.com/a/32152473/2587435。上面的方法不会起作用。

或者你可以..

使用泽西岛的JSP MVC 功能 https://jersey.java.net/documentation/latest/mvc.html#d0e15323,并且还清楚地证明了here https://stackoverflow.com/a/31900846/2587435。例如

@POST
@Path("logIn")
public Viewable login() {
    Map<String, String> model = new HashMap<>();
    model.put("key1", "value1");
    model.put("key2", "value2");

    return new Viewable("/feed", model);
}

feed.jsp

<html>
    <body>
        <p>${it.key1}</p>
        <p>${it.key2}</p>
    </body>
</html>

Aside: Do you really想要在 URI 路径中传递密码吗?这是一个巨大的安全风险。最好将其实际传递到请求正文中。


UPDATE

现在我想了一下,您应该始终从登录 POST 重定向,按照发布/重定向/获取 https://en.wikipedia.org/wiki/Post/Redirect/Get图案。如果您想在整个方法中使用 JSP MVC,您可以让控制器返回一个Viewable对于登录页面(在 GET 上),成功后(POST),重定向到 feed 控制器,否则重定向回相同的登录页面(GET)。有几种不同的解决方案。

例如

@Path("/login")
public class LoginController {

    @GET
    public Viewable loginPage() {
        ...
        return new Viewable("/login", model);  // to login.jsp
    }

    @POST
    public Response loginPost(Form form, @Context UriInfo uriInfo) {
        ...
        UriBuilder builder = uriInfo.getBaseUriBuilder();
        if (success) {
            builder.path("/feed");  // to FeedController GET
        } else {
            builder.path("/login"); // to LoginController GET
        }

        return Response.seeOther(builder.build()).build();
    }
}

@Path("/feed")
public class FeedController {

    @GET
    public Viewable getFeed() {
        ...
        return new Viewable("/feed", model);  // to feed.jsp
    }   
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Jersey for java 在浏览器中呈现新的 .jsp 文件? 的相关文章

  • Dom解析器和Xerces解析器之间的区别

    嘿 谁能告诉我 Dom 解析器 和 Xerces 解析器 之间有什么区别 两者各有什么优点和缺点 Xerces isDOM 解析器 它是 Java 或 C 中的 Apache 实现 您需要考虑的两个是 SAX 和 DOM DOM 在内存中创
  • Java发送邮件出错

    我的代码是 File Name SendEmail java import java util import javax mail import javax mail internet import javax activation pub
  • 为什么我没有这个类,而它应该在 rt.jar 中?

    所以 我正在尝试在 java 中实现 LDAP 连接 这需要com sun jndi ldap LdapCtxFactory 贾芬德表明LdapCtxFactory应包含在rt jar 据我了解 这是java SDK的基础 Eclipse
  • 在 Java 中打印 HashMap

    我有一个HashMap private HashMap
  • Android ArrayList 的 IndexOutOfBoundsException [重复]

    这个问题在这里已经有答案了 我遇到了一个非常烦人的问题 一些代码抛出 IndexOutOfBoundsException 我真的不明白为什么 logcat 指向以下代码的 addTimetableItem 我们将对此进行更多解释 if so
  • Spring Boot 动态重置数据源

    当 Spring 配置文件或自定义数据库属性文件中的数据库名称 密码或主机名等数据库属性发生更改时 我尝试更新 Spring Boot 中的数据源 当属性更改时 应用程序必须通过侦听属性更改来自行更新 一旦数据库配置发生更改 我就使用 Sp
  • playframework 全局设置 @Required 字段的自定义消息

    我正在寻求有关翻译 Play 框架 2 2 中的验证消息的帮助 我有必填字段 FE Required message To pole jest wymagane public String miesiac Required public S
  • Hibernate OneToMany 列表中的重复结果

    我已将 1 N 关系与 OneToMany 列表映射 但当我访问该列表时 由于 OUTER JOIN 结果会重复 映射如下所示 Entity public class Programmer ElementCollection fetch F
  • Apache HttpClient 摘要式身份验证

    基本上我需要做的是执行摘要身份验证 我尝试的第一件事是可用的官方示例here http svn apache org repos asf httpcomponents httpclient tags 4 0 1 httpclient src
  • Apache:配置应用程序侦听器时出错

    当我尝试运行该应用程序时 我遇到了这个问题 警告 SetContextPropertiesRule Context 设置属性 源 到 org eclipse jst j2ee server CongressApp 没有找到匹配的 财产 20
  • 以字符集安全的方式获取 Windows 上的进程列表

    这个帖子 https stackoverflow com questions 54686 how to get a list of current open windows process with java给出了一个在 Windows 下
  • Java如何使用私钥文件而不是PEM来解密?

    使用 Java 和 Bouncy Castle 1 52 我可以使用以下代码通过 PEM 证书加载私钥 我还有一个相同的 PKCS8 格式的 private key 文件 直接使用private key文件而不是PEM的代码是什么 Stri
  • 如何将 HashMap> 存储在列表中?

    我的哈希图将字符串存储为键 将数组列表存储为值 现在 我需要将其嵌入到列表中 也就是说 它将采用以下形式 List
  • Java垂直布局?

    我需要将 JLabel 垂直放置在一些 JButton 上 就像游戏菜单一样 它们都应该居中 我已经下载了 MigLayout 但我不知道如何使用它 所以我只是想要一种方法来垂直和居中定位我的组件 无论 MigLayout 与否 另外 我不
  • 破译Streamreduce函数

    为什么两者都是c1 and c2不被视为两个字符串 而是一个String和一个Integer Arrays asList duck chicken flamingo pelican stream reduce 0 c1 c2 gt c1 l
  • SQL 查询中的外语/重音字符

    我正在使用 Java 和 Spring 的 JdbcTemplate 类在 Java 中构建一个 SQL 查询来查询 Postgres 数据库 但是 我在执行包含外来 重音字符的查询时遇到问题 例如 修剪后的 代码 JdbcTemplate
  • 对堆排序有一个直观的理解吗?

    在学校 我们目前正在学习 Java 排序算法 我的作业是堆排序 我读了书 试图尽可能多地了解 但似乎我无法理解这个概念 我并不是要求您为我编写一个 Java 程序 只要您能尽可能简单地向我解释堆排序的工作原理即可 是的 所以基本上你拿一个堆
  • MultipartEntity 类型已弃用

    文档说org apache http entity mime MultipartEntity http hc apache org httpcomponents client ga httpmime apidocs org apache h
  • Spring Security 实体字段级安全

    我有一个 Spring MVC 应用程序 它提供了一个视图 其中显示了来自Customer实体 例如姓名 地址 电话号码等 该应用程序具有各种角色 例如ROLE USER and ROLE ADMIN 用户具有ROLE USER只能看到客户
  • Java 中的无符号字节

    Java 中的字节默认是有符号的 我在其他帖子中看到 具有无符号字节的解决方法类似于 int num int bite 0xFF 有人可以向我解释一下为什么它会起作用并将有符号字节转换为无符号字节 然后将其转换为相应的整数吗 ANDing一

随机推荐

  • Jquery 点击图像时切换

    我想了解 jquery 切换是如何工作的 我想切换到下一个锚点plr anchor单击带有类的图像go down 数据是使用地图填充的 Jquery代码 go down on click function e plr anchor next
  • C# 在txt文件中搜索字符串

    我想在 txt 文件中找到一个字符串 如果字符串比较 它应该继续读取行 直到我用作参数的另一个字符串 Example CustomerEN search for this string some text which has details
  • 使用 DirectShow 捕获帧并使用 OpenCV 进行处理

    我为视频到图像捕获制作了两种不同的解决方案 并且想知道是否可以将两个世界的优点结合在一起 我目前正在使用 DirectShow 加载 AVI 文件并捕获图像 然而 DirectShow 缺乏图像处理功能并且需要制作额外的滤镜 这让我陷入了困
  • 将数据从一个数据表复制到另一个具有不同结构的数据表的最佳方法

    我正在将数据从 DataTable 复制到另一个具有结构的 DataTable 我必须在循环中对列号进行硬编码 并将数据复制到对象数组中 实现这一目标的最佳方法是什么 IEnumerable
  • 重置张量流流指标的变量

    我有很多流媒体指标 tf metrics accuracy and custom http vict0rsch github io 2018 06 06 tensorflow streaming multilabel f1 流媒体micro
  • 删除嵌入的 YouTube 视频上的注释

    我发现您可以通过添加参数来禁用嵌入式 YouTube 视频上的注释 iv load policy 3到嵌入代码中的 url 例子
  • 带有 ref 对象参数的方法

    嗨 我必须调用具有此签名的方法 int MethodName ref object vIndexKey 如果我尝试用 String c 690 MethodName ref object c 这不起作用 我能怎么做 thanks 你需要这样
  • Google Maps API 3 - 在屏幕上显示所有标记,但保留中心点

    这非常类似于这个问题 https stackoverflow com questions 2818984 google map api v3 center zoom on displayed markers 我想确保所有标记都以当前缩放级别
  • 展开操作视图时导航抽屉图标(汉堡包和箭头)动画

    我在用着AppCompat and Toolbar 我确保当导航抽屉图标从汉堡包转变为箭头时会有动画 反之亦然 我使用以下技术https stackoverflow com a 26469738 72437 https stackoverf
  • 使用boost创建线程池

    是否可以使用boost的线程创建线程池 我正在查看 boost 的库 但找不到线程池管理器 或类似的东西 有办法做到吗 tnx 我知道答案已被接受 如果您现在需要这个 并且您懒得编写自己的线程池 您可以尝试使用带有并发提示的 boost a
  • Phoenix 频道:向特定客户端发送推送

    您好 我正在尝试使用 Elixir phoenix 重新实现 Whatsapp 功能 我在计算以下内容时遇到问题 如果聊天室中的所有人都收到了消息 我想向消息所有者发送 已收到 状态 以便他可以显示双勾号 但是 如何向某一特定客户端进行广播
  • 如何使用 .yml 文件更新现有 Conda 环境

    如何使用另一个 yml 文件更新预先存在的 conda 环境 当处理具有多个需求文件的项目时 这非常有用 即base yml local yml production yml etc 例如 下面是一个base yml文件有 conda fo
  • Gremlin 删除所有顶点

    我知道如何在 Gremlin 中通过 id 删除顶点 但现在我需要清理数据库 如何删除多个顶点 删除1v是这样的 ver g v 1 g removeVertex ver 我的意思是类似SQL的东西TRUNCATE 如何在不删除类的情况下删
  • 使用 pd.read_html 解析 html 表,其中单元格本身包含完整表

    我需要从 html 解析一个表 该表在较大的表中嵌套有其他表 如下所示pd read html 每个嵌套表都会被解析 然后作为行 插入 连接 我希望将这些嵌套表分别解析为自己的表pd DataFrames并将插入的对象作为相应列的值 如果这
  • 我的视频没有关键帧,怎么可能?

    当我在视频上运行以下行时 它仅输出 P 帧和 B 帧 没有 I 帧 ffprobe select streams v show frames show entries frame pict type of csv 00000 MTS 视频怎
  • EntityConnection 和打开的 SqlConnection

    我有一个关于采用 CodeFirst 方法的 EntityFramework 的问题 基于 EntityConnection 源代码和文档 我无法使用已打开的 SqlConnection 创建它 它要求应该关闭 我们有一些不同的数据库数据层
  • Gradle 项目刷新失败。安卓工作室

    尝试在 Android Studio 上运行我的应用程序时出现此错误 有谁知道原因可能是什么 谢谢 Gradle MyApp refresh failed Error Cannot locate factory for objects of
  • StackOverflowException 加载 XsltCompiledTransform

    加载 XslCompiledTransform 时 我遇到一些大型 xslt 崩溃 iis StackOverflowException 而旧的 已弃用的 XslTransform 工作正常 大模板是否存在一些已知问题 奇怪的是 相同的 X
  • 获取 Woocommerce 自定义电子邮件内容的自定义电子邮件占位符值

    我在 WooCommerce 中创建了自己的电子邮件课程 因为我的电子邮件内容中需要一个自定义参数 所以我已将带有此自定义参数的占位符添加到 wc 电子邮件触发函数中 public function trigger order id fir
  • 如何使用 Jersey for java 在浏览器中呈现新的 .jsp 文件?

    我的网站进入一个登录页面 当用户登录时我想重定向到另一个页面 我有一个 POST 方法 将 用户名 和 密码 发送到服务器 服务器检查用户名和密码是否正确存在 这是我的方法 POST Path logIn public void signI